打印

RS485接收数据不全问题

[复制链接]
1586|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
迟到的火车|  楼主 | 2022-3-21 19:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

设备A和设备B用485通信,A发数据给B,B能正确接收A发的数据,但A收不全B发的数据,但我从设备A的mcu的RX引脚接到USB转串口模块用PC监控A收到的数据,可以看到A设备芯片的RX引脚能全部正确收到B设备发来的数据,但在Keil中设置断点,只收到设置B发来的数据的后面部分,A和PC通过485通信没问题 ,B和PC通过485通信也没问题。且


A和B都是同一个型号芯片都是是stm21f32f103C ,串口驱动代码用的同一份代码.波特率是9600




有哪位朋友,遇到过这样的现象,最大可能是哪出了问题呢?

使用特权

评论回复

相关帖子

沙发
迟到的火车|  楼主 | 2022-3-25 19:10 | 只看该作者

RS485接收数据不全问题

忘记结贴了,这个问题点已找到了。问题在于B设备是查询方式来发送数据,因为B设备中断处理时间较长,导致B设备在发送一帧数据时,字节之间会出现间隔时间超过3ms,因为A设备是采用DMA+Idle中断来接收数据。导致A设备认为是几帧数据,我用调试器看到只收到一部分数据,误以为接收不全。其实用逻辑分析仪看一下A设备的RX引脚,问题就找到了。也给碰到类似的问题的朋友提供参考

使用特权

评论回复
板凳
天意无罪| | 2022-3-26 10:03 | 只看该作者
485很简单的应用,硬件上没问题,若出现数据不完整或错误,一般都是软件逻辑处理的问题。

使用特权

评论回复
地板
yueguang3048| | 2022-3-26 14:33 | 只看该作者
迟到的火车 发表于 2022-3-25 19:10
忘记结贴了,这个问题点已找到了。问题在于B设备是查询方式来发送数据,因为B设备中断处理时间较长,导致B ...

感谢提出宝贵调试结论

使用特权

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

本版积分规则

5

主题

10

帖子

1

粉丝