[STM32F1] CAN发送丢帧现象如何解决

[复制链接]
1914|5
 楼主| 1156807738 发表于 2020-11-7 11:53 | 显示全部楼层 |阅读模式
本帖最后由 1156807738 于 2020-11-7 14:04 编辑

大家好,因为需要发送的数据量比较大,有定时发的,有接收数据后响应发的,目前遇到CAN发送丢帧的现象,
发送前先检查发送邮箱是否有空闲,但是好像不起作用,适当加了一些发送帧的的延时,有一些改善,但还是有丢帧现象(我写了一个canopen的SDO分段传输),每次传输都8字节,请问大家一般都是怎么解决这种发送丢帧问题的,
我开启了自动重传,但好像还有些问题,请各位前辈给一些指导建议,感谢
zchong 发表于 2020-11-7 16:14 | 显示全部楼层
会不会是信号质量问题,降低波特率试试呢

评论

50K的波特率,因该很低了  发表于 2020-11-9 08:41
 楼主| 1156807738 发表于 2020-11-9 08:40 | 显示全部楼层
我的发送流程是,(2ms的轮询发送)
1.检查邮箱TxMail !=0,然后调用CAN发送函数,如果等于0,就等下次轮询再判断
数据是一发一回(SDO分段传输),有时候就出现丢了一帧ID的数据
hufuju 发表于 2020-11-10 09:03 | 显示全部楼层
50k的波特率是不会丢帧的,估计是数据覆盖了,一个是发送覆盖;一个是接收覆盖

评论

应该不会吧,我接收有20个数据的缓冲区,每次轮询,去读缓冲区的数据,然后发送响应的数据  发表于 2020-11-10 10:19
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

40

帖子

0

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