[MCU] 请教485丢包的古怪问题

[复制链接]
2781|11
 楼主| yangwenguan 发表于 2016-6-2 09:59 | 显示全部楼层 |阅读模式

硬件电路没问题, 因为在485接口与MCU之间, 加了一个232-usb的串口监控, 数据包都收到了,
mcu中,只跑了一个100us定时器和串口中断, 没有任何东西, 但是丢包总是随机出现, 想不通!

谢谢!
zhaoyu2005 发表于 2016-6-2 11:35 | 显示全部楼层
不知道你串口速率,还有中断退出是否及时,所以不好说
xuyaqi 发表于 2016-6-2 15:51 | 显示全部楼层
你串口是中断接收吗?
meancom 发表于 2016-6-2 22:07 | 显示全部楼层
尽量先做最简单的测试,中断只保留串口,同时只保留串口的处理代码~
 楼主| yangwenguan 发表于 2016-6-6 14:30 | 显示全部楼层
xuyaqi 发表于 2016-6-2 15:51
你串口是中断接收吗?

是的, 19.2kps
ningling_21 发表于 2016-6-6 14:55 | 显示全部楼层
485的收发需要控制,是不是因为程序对收发的控制引起丢包
 楼主| yangwenguan 发表于 2016-6-6 16:22 | 显示全部楼层
本帖最后由 yangwenguan 于 2016-6-6 16:23 编辑
ningling_21 发表于 2016-6-6 14:55
485的收发需要控制,是不是因为程序对收发的控制引起丢包

应该不是接口的问题, 我加了串口监控, 数据包都能正常通过485接口, 但是stc mcu无法收到,
现在不知道, 软件那里出了问题?

如果出现丢包, 串口监控上, 能接收到数据包
ningling_21 发表于 2016-6-8 08:56 | 显示全部楼层
yangwenguan 发表于 2016-6-6 16:22
应该不是接口的问题, 我加了串口监控, 数据包都能正常通过485接口, 但是stc mcu无法收到,
现在不知道, 软 ...

过了485,但51没收到,难道中间线断了?
 楼主| yangwenguan 发表于 2016-6-9 10:06 | 显示全部楼层
ningling_21 发表于 2016-6-8 08:56
过了485,但51没收到,难道中间线断了?

调试过程有点复杂,
100us 时基
20ms 时间片
使用115200bps, 丢包很少出现
改成19200bps, 丢包出现频率增加

我在想是不是stc的定时器0与串口中断有冲突? 不然不可能出现这样问题?
ningling_21 发表于 2016-6-12 09:52 | 显示全部楼层
yangwenguan 发表于 2016-6-9 10:06
调试过程有点复杂,
100us 时基
20ms 时间片

提高串口中断优先级

评论

谢谢  发表于 2016-6-13 13:20
chunyang 发表于 2016-6-14 17:03 | 显示全部楼层
如果通过监视确认数据没问题只是接收侧MCU丢包,那说明该MCU的程序有问题,必须通过合理的中断调度机制保证串口收到的每个字节都在下一个字节到来前被处理好。注意中断优先级的处理以及串口中断服务程序要尽量精简,一些后续处理可以待通讯完成后统一处理。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

68

主题

565

帖子

1

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