问题标签 [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.
c - 仅在接收数据时读取 USART RX 寄存器 STM32F4-Discovery Cortex M4
当我通过 USART 从另一张 Discovery 卡传输数据时,我有一个关于读取 STM32F4-Discovery 卡上的 RX 寄存器的问题。我只想在从卡 2 传输数据时读取卡 1 上的 RX 寄存器一次,然后我想清除它以便读取卡 2 传输的下一个数据。
什么 C 代码可以为我做到这一点?我可以使用哪些标志?读取 RX 寄存器后如何清除它?
iso - ISO 7816(SIM 卡)协议
我正在尝试与使用 T=1 的 ISO 7816 协议的设备交谈。我的硬件设置是使用在 SIM 卡模式下配置的 USART 的微控制器。我已阅读相关文档,但不清楚 ATR 后会发生什么。
据我了解,输入频率在 ATR 中使用初始 F=372、D=1。因此,如果我的输入频率为 3.571MHz,ATR 响应将以 9600 波特返回。这是我在示波器和监控 USART 的 TTL 电缆上看到的。这个对吗?
查看 ATR 的结果,它显示 F=372,D=12。这是否意味着与卡通信的波特率仍然是 9600 波特,或者我应该在收到 ATR @ 返回的波特率参数(即 115 kbaud)后发送所有消息?似乎 PPS 在 9600 波特下工作,但这没有任何意义,为什么返回的 F 和 D 的波特率与卡实际运行的接口不同。
答案很可能是否定的,但 PPS 和 ATR 运行的波特率是否与 ISO7816 的其余命令不同?
stm32 - STM32F0 Discovery USART 发送错误值
我正在 STM32 世界中迈出第一步,而且非常艰难。我运行我的探索板。当我学会了如何控制 GPIO 并从中中断时,我决定使用 USART。地狱从这里开始。我花了两个晚上在串行通信这样简单的事情上苦苦挣扎!
我有的:
- 配置的 GPIO
- 配置的 USART
- 来自标准 STM 库的时钟 - HSI 48 MHz
- 我在PuTTY中看到字符
- 测试传输参数:8N1 9600和115200
正如您从代码中看到的那样,我希望在得到“_”时看到一个“A”字符。在我看来,这是与波特率有关的东西,但我只得到了这个错误的字符。当我将 BRR 更改为完全错误的值时,它会显示一些垃圾字符。
欢迎任何想法!
arduino - Arduino循环功能在while循环之外
我可能在这里遗漏了一些明显的东西,但我正在使用我的 Arduino 通过 UART 进行通信。我们不能使用 Arduino 库函数,所以要打印消息,我必须创建自己的写入函数。我可以这样做并且它有效,问题是一旦我为我的程序的其余部分包含了我的循环结构,即使它不在循环中,消息也不会停止被打印出来。这是我的代码:
matlab - 无法在 Matlab 中检查串口接收到的值
我想检查我是否在 Matlab 的串行端口上收到一个点('.')。为此,我运行 for 循环 10 次,检查是否得到 '.' 在串口上然后显示“接收到一个点”,否则显示接收到的任何内容。但在收到“。” 在串行端口上,它不显示“收到一个点”。这是我的代码:-
这是我在命令窗口上的输出:-
所以,请告诉我错误在哪里。
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 代码的输出不是我们所期望的!
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 功能上......
microchip - dsPic 接收 11 字节的 usart 字符串
我正在使用 dsPic33 尝试接收一个 11 字节的字符串并将其放入一个数组中,但没有成功地完全接收到它。我发送的字符串是“$123456789#”,应该由图片接收。我试过使用下面的代码。任何帮助将不胜感激。
arm - STM32F407 UART在终端上给出垃圾
我刚刚开始使用 STM32f407 探索板进行冒险。我正在使用 CoIDE 的最新稳定版本并使用最新的工具链/库。
我设法编写了以下代码以使用板上的 USART1
}
此外,我通过设置 HSE 和其他时钟详细信息确保时钟配置正确
并且
在控制台中,我刚刚收到垃圾,我做了以下操作以确保设置正确: - 检查 USB-RS232 转换器 - 在转换器和 STM32 板之间切换 - 切换转换器 - 使用 STM32CubeMX 生成的代码进行比较,看起来一致(逻辑当然是明智的:))
从我初学者的角度来看,这有点“炫技” :(我似乎找不到这个的根本原因
任何帮助,将不胜感激
更新 1:为了找到根本原因,我决定尝试其他 USART 模块之一。下面是我的 USART3 代码,这个开箱即用的代码会导致我在最初的问题中错误地初始化 USART1?
{
}
解决方法:经过大量挖掘和尝试,似乎USART1会与USB组件发生碰撞,并且有电容器与传输链路发生碰撞以在ST论坛上回答
我希望我以前能在文档的某个地方找到这个。
希望这对某人有所帮助,并感谢大家的帮助
c - USART 错误数据传入
我正在写 和 之间的Atmega162
通信PC
。
在我的PCB
我有接口RS485
(从转换),它通过RS422
收发器进入。MAX485
ADAM-4520
COM port
我一直在终端中测试我的程序,这对我来说似乎很奇怪,从MCU
工作正常发送字符,但是从接收的字符PC
被更改(我无法弄清楚这种转换的任何方案)。
例如,这些 ASCII 字符是这样解释的:
我一直在测试它的几个传输参数,但它似乎没有帮助。源代码在这里:
PD4
在发送和接收之间切换。