问答

汇集网友智慧,解决技术难题

21ic问答首页 - RS485接收数据不全问题

485通讯 RS485 pc 通信 代码 串口

RS485接收数据不全问题

设备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




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

回答 +关注 15
1599人浏览 3人回答问题 分享 举报
3 个回答
  • 迟到的火车 发表于 2022-3-25 19:10
    忘记结贴了,这个问题点已找到了。问题在于B设备是查询方式来发送数据,因为B设备中断处理时间较长,导致B ...

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

您需要登录后才可以回复 登录 | 注册