发新帖我要提问
12
返回列表
打印

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

[复制链接]
楼主: grfqq325
手机看帖
扫描二维码
随时随地手机跟帖
21
grfqq325|  楼主 | 2023-6-25 19:28 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
我在初始化串口的时候,添加上面函数的设置,结果还是乱码,这就说明,不管OSB = 1还是OSB = 0,起始位的判断都是有问题的。

后来我反复的确认,这个bit出现低电平变短,高电平变长的原因是我的那个USB转rs422模块产生的,当我将我两个开发板的RS422互联,就不会出现问题,这就说明并不是所有品牌的RS485或422会出现bit时常低电平变短,高电平变长的现象。

使用特权

评论回复
22
grfqq325|  楼主 | 2023-6-25 19:28 | 只看该作者
下图是使用CA-IS3086W,会发现数据很正常,如下图:

现在有个非常尬的事:我们设计RS422是对接别人的接口,我们也不知道它用的什么芯片,而且到时候它接在STM32的串口就能用,接在你的设备上就不能,你说是他的电平不标准,谁信呀!

使用特权

评论回复
23
grfqq325|  楼主 | 2023-6-25 19:29 | 只看该作者
后来我用了我以前在淘宝买的很便宜的黑壳子的usb转485,结果非常好用,买的贵的反而不行,便宜的反而好用,如下:

6. 总结
当我们在型号替换的时候,千万不要想当然,即使是像串口这么简单的外设,都会因为各家的实现差异导致翻车,因此在换型前,一定要测试实践。

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

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

同时我也感谢我在淘宝买的那个不能发出标准报文的usb转422/485模块,因为它替我避免了批量的损失。

使用特权

评论回复
24
sagade| | 2023-6-25 21:02 | 只看该作者
这么坑的吗?去年GD32F405试过8位过采样,5M的波特率,误码率还可以,当然没有长时间测试。后来因为速率问题换成网口了,一直都没怎么测试了。
感觉华大的更坑,用过HC32F460,SPI时钟上20M波形就很差了,GD的很正常。
话说ST的价格也下来了,没必要换了把

使用特权

评论回复
25
Dick Hou| | 2023-6-27 11:53 | 只看该作者
楼主非常有钻研精神,一些看似简单的逻辑,不够仔细严谨,往往导致应用上会遇到一些意外的结果。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则