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