在过去的一周里,我一直希望从STM32F407发送UART消息,并使用白蚁通过ugreen RS232转USB电缆在笔记本电脑上读取它。我已经使用STMCube生成代码并通过阅读“stm32f4xx_hal_uart.c”文件顶部的相关说明(并观看大量视频和在线阅读)添加代码。我在示波器上检查了传输的消息,并且它与ASCII表示相匹配。例如,我发送'Q',它是0101 0001,我收到'W',它是0101 0111.范围上的读数显示:
白蚁输出与示波器上显示的信号相同。
我已确认波特率/奇偶校验/ HWcontrol在白蚁和我的代码中是匹配的。为了获得正确的字符,我尝试降低和提高波特率。
我尝试过不同的字符集来尝试查找导致显示错误字符的模式。
另外我尝试过不同的终端,比如Putty或Teraterm。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
逻辑1 = -3至-12 V.
逻辑0 = +3至+12 V.
在-3和+3之间,逻辑电平未定义。
RS232起始位为逻辑0。
要将TTL(5 V)逻辑转换为RS232,需要驱动程序。MAX232等芯片可为您提供逻辑电平反转和电压提升。
请注意,RS232输入正在寻找一个正边沿来指示起始位。直到数据的第二位才会发生这种情况,因此此后的所有内容都是向右一位并且在接收器看到它时反转。幸运的是,你的MSB是停止位的正确逻辑电平,因此接收器将其解释为有效帧,对其进行解码并显示“W”。
出于测试目的,您可以反转TTL输出。这可能会起作用,因为它正在“工作”。
一周热门 更多>