问题标签 [usart]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
9793 浏览

c - 仅在接收数据时读取 USART RX 寄存器 STM32F4-Discovery Cortex M4

当我通过 USART 从另一张 Discovery 卡传输数据时,我有一个关于读取 STM32F4-Discovery 卡上的 RX 寄存器的问题。我只想在从卡 2 传输数据时读取卡 1 上的 RX 寄存器一次,然后我想清除它以便读取卡 2 传输的下一个数据。

什么 C 代码可以为我做到这一点?我可以使用哪些标志?读取 RX 寄存器后如何清除它?

0 投票
1 回答
3631 浏览

iso - ISO 7816(SIM 卡)协议

我正在尝试与使用 T=1 的 ISO 7816 协议的设备交谈。我的硬件设置是使用在 SIM 卡模式下配置的 USART 的微控制器。我已阅读相关文档,但不清楚 ATR 后会发生什么。

  1. 据我了解,输入频率在 ATR 中使用初始 F=372、D=1。因此,如果我的输入频率为 3.571MHz,ATR 响应将以 9600 波特返回。这是我在示波器和监控 USART 的 TTL 电缆上看到的。这个对吗?

  2. 查看 ATR 的结果,它显示 F=372,D=12。这是否意味着与卡通信的波特率仍然是 9600 波特,或者我应该在收到 ATR @ 返回的波特率参数(即 115 kbaud)后发送所有消息?似乎 PPS 在 9600 波特下工作,但这没有任何意义,为什么返回的 F 和 D 的波特率与卡实际运行的接口不同。

  3. 答案很可能是否定的,但 PPS 和 ATR 运行的波特率是否与 ISO7816 的其余命令不同?

0 投票
2 回答
1464 浏览

stm32 - STM32F0 Discovery USART 发送错误值

我正在 STM32 世界中迈出第一步,而且非常艰难。我运行我的探索板。当我学会了如何控制 GPIO 并从中中断时,我决定使用 USART。地狱从这里开始。我花了两个晚上在串行通信这样简单的事情上苦苦挣扎!

我有的:

  • 配置的 GPIO
  • 配置的 USART
  • 来自标准 STM 库的时钟 - HSI 48 MHz
  • 我在PuTTY中看到字符
  • 测试传输参数:8N1 9600和115200

正如您从代码中看到的那样,我希望在得到“_”时看到一个“A”字符。在我看来,这是与波特率有关的东西,但我只得到了这个错误的字符。当我将 BRR 更改为完全错误的值时,它会显示一些垃圾字符。

欢迎任何想法!

0 投票
0 回答
381 浏览

arduino - Arduino循环功能在while循环之外

我可能在这里遗漏了一些明显的东西,但我正在使用我的 Arduino 通过 UART 进行通信。我们不能使用 Arduino 库函数,所以要打印消息,我必须创建自己的写入函数。我可以这样做并且它有效,问题是一旦我为我的程序的其余部分包含了我的循环结构,即使它不在循环中,消息也不会停止被打印出来。这是我的代码:

0 投票
1 回答
158 浏览

matlab - 无法在 Matlab 中检查串口接收到的值

我想检查我是否在 Matlab 的串行端口上收到一个点('.')。为此,我运行 for 循环 10 次,检查是否得到 '.' 在串口上然后显示“接收到一个点”,否则显示接收到的任何内容。但在收到“。” 在串行端口上,它不显示“收到一个点”。这是我的代码:-

这是我在命令窗口上的输出:-

所以,请告诉我错误在哪里。

0 投票
2 回答
153 浏览

python - 为什么python在多行中打印一个多位数字?

我在 python 中编写了一个程序,它通过 USART 从 Atmega32(微控制器)接收二进制数并将其打印在输出中。

另一方面,我的 Atmega32 在中断触发时读取其 PINA,并使用 USART 将其值发送到计算机。

这是我的python程序:

当我以使00000111(等于7)的方式连接 PINA 引脚时,我在 python 中看到以下输出:

但是当我以使10000111(等于135)的方式连接 PINA 引脚时,我在 python 中看到以下输出:

如上所示,它在三行中打印135 !为什么?


仅供参考:这是我在 CodeVision 中为Atmega32编写程序:


更新:我按照答案中的建议更改了 ATMEGA 端和 Python 端中的程序:

我的 AVR 中断程序:

这是我在 python 中的输出:

如您所见,AVR 代码和 Python 代码的输出不是我们所期望的!

0 投票
1 回答
261 浏览

pic - 将 PIC18f2455 配置为使用 RS232

我正在使用带有 RS232 的 PIC18f2455 的 USART 并且在配置它时遇到了一些麻烦。

我正在使用 24 MHz 晶体振荡器。PLL 使用 6 的预分频器启用(在输入端设置 4MHz)并在输出端提供固定的 96MHz。后分频器设置为 6,最后为微控制器时钟提供 16MHz。

使用这个时钟,我将 OpenUSART 功能的 SPBRG 设置为 25 ,波特率为 9600 。

这是我的 USART 配置:

#pragma config PLLDIV = 6, CPUDIV = OSC4_PLL6, USBDIV = 2, FOSC = HSPLL_HS OpenUSART(USART_TX_INT_ON & USART_RX_INT_OFF & USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_LOW, 25);

它卡在 OpenUSART 功能上......

0 投票
2 回答
1139 浏览

microchip - dsPic 接收 11 字节的 usart 字符串

我正在使用 dsPic33 尝试接收一个 11 字节的字符串并将其放入一个数组中,但没有成功地完全接收到它。我发送的字符串是“$123456789#”,应该由图片接收。我试过使用下面的代码。任何帮助将不胜感激。

0 投票
2 回答
2539 浏览

arm - STM32F407 UART在终端上给出垃圾

我刚刚开始使用 STM32f407 探索板进行冒险。我正在使用 CoIDE 的最新稳定版本并使用最新的工具链/库。

我设法编写了以下代码以使用板上的 USART1

}

此外,我通过设置 HSE 和其他时钟详细信息确保时钟配置正确

并且

在控制台中,我刚刚收到垃圾,我做了以下操作以确保设置正确: - 检查 USB-RS232 转换器 - 在转换器和 STM32 板之间切换 - 切换转换器 - 使用 STM32CubeMX 生成的代码进行比较,看起来一致(逻辑当然是明智的:))

从我初学者的角度来看,这有点“炫技” :(我似乎找不到这个的根本原因

任何帮助,将不胜感激


更新 1:为了找到根本原因,我决定尝试其他 USART 模块之一。下面是我的 USART3 代码,这个开箱即用的代码导致我在最初的问题中错误地初始化 USART1?

{

}


解决方法:经过大量挖掘和尝试,似乎USART1会与USB组件发生碰撞,并且有电容器与传输链路发生碰撞以在ST论坛上回答

我希望我以前能在文档的某个地方找到这个。

希望这对某人有所帮助,并感谢大家的帮助

0 投票
0 回答
922 浏览

c - USART 错误数据传入

我正在写 和 之间的Atmega162通信PC

在我的PCB我有接口RS485(从转换),它通过RS422收发器进入。MAX485ADAM-4520COM port

我一直在终端中测试我的程序,这对我来说似乎很奇怪,从MCU工作正常发送字符,但是从接收的字符PC被更改(我无法弄清楚这种转换的任何方案)。

例如,这些 ASCII 字符是这样解释的:

我一直在测试它的几个传输参数,但它似乎没有帮助。源代码在这里:

PD4在发送和接收之间切换。