[PIC32/SAM] mcp2515通信接收问题算不算是设计bug

[复制链接]
 楼主| abcxyz621 发表于 2019-4-2 07:19 来自手机 | 显示全部楼层 |阅读模式
本帖最后由 abcxyz621 于 2019-4-2 07:22 编辑

有没有人遇到用mcp2515做的can接口,在接收总线数据时,当接收多组数据且帧间隔小于1毫秒时(250k波特率),可收到多次中断,但好像mcp2515接收缓存器不刷新,从其缓存器中读出的数据总是首先接收到的第一帧数据,如果接收的多组数据帧间隔改为大于1毫秒,又接收正常,数据每组不同,感觉是接收缓存器更新不及时,不知是不是这个芯片的设计问题,还有mcp2515是否能手动更新缓存或清缓存器呢,不用清中断来自动更新缓存的方法,请高手赐教!
零三翟邢止胃 发表于 2019-4-2 08:17 | 显示全部楼层
不知道的啊! 可以的啊!!!!!
 楼主| abcxyz621 发表于 2019-4-2 08:23 来自手机 | 显示全部楼层
零三翟邢止胃 发表于 2019-4-2 08:17
不知道的啊! 可以的啊!!!!!

可以是指什么,能手动刷新缓存器吗,怎么刷,设置哪一个寄存器,望赐教!
yjmeishao 发表于 2019-4-2 09:32 | 显示全部楼层
建议参考下第三方MCP2515驱动例程
只能帮到这里了
systemchip 发表于 2019-4-2 10:32 | 显示全部楼层
不存在这种问题,这取决于你有没有及时去读取接收buffer内的内容,如果没有及时读取,会产生溢出,导致无法接收新数据,你可以使用rollover,这样相当可以得到多一级缓存
 楼主| abcxyz621 发表于 2019-4-2 19:31 来自手机 | 显示全部楼层
yjmeishao 发表于 2019-4-2 09:32
建议参考下第三方MCP2515驱动例程
只能帮到这里了

就是用的第三发例程移植的,你那是否有可供参考的驱动例程,若有请发我邮箱:cxy.5313@163.com,谢谢了!
 楼主| abcxyz621 发表于 2019-4-2 19:37 来自手机 | 显示全部楼层
systemchip 发表于 2019-4-2 10:32
不存在这种问题,这取决于你有没有及时去读取接收buffer内的内容,如果没有及时读取,会产生溢出,导致无法 ...

已使用滚存,但当用zlgcan做测试时连续发3帧不一样的数据,发送间隔设为0,产生三次中断,有时能从rx0与rx1缓存器中都收到数,数据都正确,有时只能从rx0中收到数,三帧数都一样,都是发出的第一帧数的值,搞不清程序时序逻辑哪里有问题,望赐教!
sensitivity 发表于 2019-4-10 16:34 | 显示全部楼层
可能是溢出了,导致数据写不进去了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

0

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