打印
[MCU]

请教485丢包的古怪问题

[复制链接]
2337|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yangwenguan|  楼主 | 2016-6-2 09:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
zhaoyu2005| | 2016-6-2 11:35 | 只看该作者
不知道你串口速率,还有中断退出是否及时,所以不好说

使用特权

评论回复
板凳
xuyaqi| | 2016-6-2 15:51 | 只看该作者
你串口是中断接收吗?

使用特权

评论回复
地板
meancom| | 2016-6-2 22:07 | 只看该作者
尽量先做最简单的测试,中断只保留串口,同时只保留串口的处理代码~

使用特权

评论回复
5
yangwenguan|  楼主 | 2016-6-6 14:30 | 只看该作者
xuyaqi 发表于 2016-6-2 15:51
你串口是中断接收吗?

是的, 19.2kps

使用特权

评论回复
6
ningling_21| | 2016-6-6 14:55 | 只看该作者
485的收发需要控制,是不是因为程序对收发的控制引起丢包

使用特权

评论回复
7
yangwenguan|  楼主 | 2016-6-6 16:22 | 只看该作者
本帖最后由 yangwenguan 于 2016-6-6 16:23 编辑
ningling_21 发表于 2016-6-6 14:55
485的收发需要控制,是不是因为程序对收发的控制引起丢包

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

如果出现丢包, 串口监控上, 能接收到数据包

使用特权

评论回复
8
ningling_21| | 2016-6-8 08:56 | 只看该作者
yangwenguan 发表于 2016-6-6 16:22
应该不是接口的问题, 我加了串口监控, 数据包都能正常通过485接口, 但是stc mcu无法收到,
现在不知道, 软 ...

过了485,但51没收到,难道中间线断了?

使用特权

评论回复
9
yangwenguan|  楼主 | 2016-6-9 10:06 | 只看该作者
ningling_21 发表于 2016-6-8 08:56
过了485,但51没收到,难道中间线断了?

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

我在想是不是stc的定时器0与串口中断有冲突? 不然不可能出现这样问题?

使用特权

评论回复
10
ningling_21| | 2016-6-12 09:52 | 只看该作者
yangwenguan 发表于 2016-6-9 10:06
调试过程有点复杂,
100us 时基
20ms 时间片

提高串口中断优先级

使用特权

评论回复
评论
yangwenguan 2016-6-13 13:20 回复TA
谢谢 
11
chunyang| | 2016-6-14 17:03 | 只看该作者
如果通过监视确认数据没问题只是接收侧MCU丢包,那说明该MCU的程序有问题,必须通过合理的中断调度机制保证串口收到的每个字节都在下一个字节到来前被处理好。注意中断优先级的处理以及串口中断服务程序要尽量精简,一些后续处理可以待通讯完成后统一处理。

使用特权

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

本版积分规则

68

主题

565

帖子

1

粉丝