通信接收问题

[复制链接]
 楼主| xxrs 发表于 2020-8-15 21:42 | 显示全部楼层 |阅读模式
用mcp2515做的can接口,在接收总线数据时,当接收多组数据且帧间隔小于1毫秒时(250k波特率),可收到多次中断,但好像mcp2515接收缓存器不刷新,从其缓存器中读出的数据总是首先接收到的第一帧数据,如果接收的多组数据帧间隔改为大于1毫秒,又接收正常
langgq 发表于 2020-8-15 21:46 | 显示全部楼层

还有什么现象?能再详细描述下吗?
 楼主| xxrs 发表于 2020-8-15 21:51 | 显示全部楼层
数据每组不同,感觉是接收缓存器更新不及时
happy_10 发表于 2020-8-15 21:56 | 显示全部楼层
不知是不是这个芯片的设计问题
 楼主| xxrs 发表于 2020-8-15 22:00 | 显示全部楼层
mcp2515是否能手动更新缓存或清缓存器呢
wangzsa 发表于 2020-8-15 22:05 | 显示全部楼层
不用清中断来自动更新缓存的方法
zwll 发表于 2020-8-15 22:46 | 显示全部楼层
不知道的啊! 可以的啊!!!!!
 楼主| xxrs 发表于 2020-8-15 22:49 | 显示全部楼层
可以是指什么,能手动刷新缓存器吗,怎么刷,设置哪一个寄存器,望赐教!
dingy 发表于 2020-8-15 22:53 | 显示全部楼层
建议参考下第三方MCP2515驱动例程
 楼主| xxrs 发表于 2020-8-15 22:57 | 显示全部楼层

不存在这种问题,这取决于你有没有及时去读取接收buffer内的内容
pangb 发表于 2020-8-15 23:07 | 显示全部楼层
如果没有及时读取,会产生溢出,导致无法接收新数据
morrisk 发表于 2020-8-15 23:10 | 显示全部楼层
你可以使用rollover
zyf部长 发表于 2020-8-15 23:13 | 显示全部楼层
嗯,这样相当可以得到多一级缓存
 楼主| xxrs 发表于 2020-8-15 23:17 | 显示全部楼层
就是用的第三发例程移植的,你那是否有可供参考的驱动例程
 楼主| xxrs 发表于 2020-8-15 23:20 | 显示全部楼层
已使用滚存,但当用zlgcan做测试时连续发3帧不一样的数据,发送间隔设为0,产生三次中断,有时能从rx0与rx1缓存器中都收到数,数据都正确,有时只能从rx0中收到数,三帧数都一样,都是发出的第一帧数的值,搞不清程序时序逻辑哪里有问题,望赐教!
gongche 发表于 2020-8-15 23:29 | 显示全部楼层

可能是溢出了,导致数据写不进去了
 楼主| xxrs 发表于 2020-8-15 23:34 | 显示全部楼层

好的,我明天去单位试一下,多谢各位大侠了哈        
您需要登录后才可以回帖 登录 | 注册

本版积分规则

405

主题

7415

帖子

1

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