GD32转RS422在115200下接收乱码分析

[复制链接]
3229|24
 楼主| grfqq325 发表于 2023-6-25 19:28 | 显示全部楼层
我在初始化串口的时候,添加上面函数的设置,结果还是乱码,这就说明,不管OSB = 1还是OSB = 0,起始位的判断都是有问题的。

后来我反复的确认,这个bit出现低电平变短,高电平变长的原因是我的那个USB转rs422模块产生的,当我将我两个开发板的RS422互联,就不会出现问题,这就说明并不是所有品牌的RS485或422会出现bit时常低电平变短,高电平变长的现象。
 楼主| grfqq325 发表于 2023-6-25 19:28 | 显示全部楼层
下图是使用CA-IS3086W,会发现数据很正常,如下图:
42716649824dc61901.png
现在有个非常尬的事:我们设计RS422是对接别人的接口,我们也不知道它用的什么芯片,而且到时候它接在STM32的串口就能用,接在你的设备上就不能,你说是他的电平不标准,谁信呀!
 楼主| grfqq325 发表于 2023-6-25 19:29 | 显示全部楼层
后来我用了我以前在淘宝买的很便宜的黑壳子的usb转485,结果非常好用,买的贵的反而不行,便宜的反而好用,如下:
25020649824ef98905.png
6. 总结
当我们在型号替换的时候,千万不要想当然,即使是像串口这么简单的外设,都会因为各家的实现差异导致翻车,因此在换型前,一定要测试实践。

串口协议虽然有标准,可是貌似没有bit时间容错的标准,因此每家的mcu对此兼容性不同,我们不能说GD的uart做的不好,只能说它的兼容性比STM32差的有点多,更何况RS485和RS422转换芯片众多,兼容更多更广的设备,才能有更好的认可。

我的项目结果,因为上面的问题根本没办法改善,我只能更换mcu厂家,所以现在我决定这个项目用小华半导体HC32FA0重做,然后又进新坑。

同时我也感谢我在淘宝买的那个不能发出标准报文的usb转422/485模块,因为它替我避免了批量的损失。
sagade 发表于 2023-6-25 21:02 | 显示全部楼层
这么坑的吗?去年GD32F405试过8位过采样,5M的波特率,误码率还可以,当然没有长时间测试。后来因为速率问题换成网口了,一直都没怎么测试了。
感觉华大的更坑,用过HC32F460,SPI时钟上20M波形就很差了,GD的很正常。
话说ST的价格也下来了,没必要换了把
Dick Hou 发表于 2023-6-27 11:53 | 显示全部楼层
楼主非常有钻研精神,一些看似简单的逻辑,不够仔细严谨,往往导致应用上会遇到一些意外的结果。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部