打印

通信接收问题

[复制链接]
587|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 | 只看该作者
不知是不是这个芯片的设计问题

使用特权

评论回复
5
xxrs|  楼主 | 2020-8-15 22:00 | 只看该作者
mcp2515是否能手动更新缓存或清缓存器呢

使用特权

评论回复
6
wangzsa| | 2020-8-15 22:05 | 只看该作者
不用清中断来自动更新缓存的方法

使用特权

评论回复
7
zwll| | 2020-8-15 22:46 | 只看该作者
不知道的啊! 可以的啊!!!!!

使用特权

评论回复
8
xxrs|  楼主 | 2020-8-15 22:49 | 只看该作者
可以是指什么,能手动刷新缓存器吗,怎么刷,设置哪一个寄存器,望赐教!

使用特权

评论回复
9
dingy| | 2020-8-15 22:53 | 只看该作者
建议参考下第三方MCP2515驱动例程

使用特权

评论回复
10
xxrs|  楼主 | 2020-8-15 22:57 | 只看该作者

不存在这种问题,这取决于你有没有及时去读取接收buffer内的内容

使用特权

评论回复
11
pangb| | 2020-8-15 23:07 | 只看该作者
如果没有及时读取,会产生溢出,导致无法接收新数据

使用特权

评论回复
12
morrisk| | 2020-8-15 23:10 | 只看该作者
你可以使用rollover

使用特权

评论回复
13
zyf部长| | 2020-8-15 23:13 | 只看该作者
嗯,这样相当可以得到多一级缓存

使用特权

评论回复
14
xxrs|  楼主 | 2020-8-15 23:17 | 只看该作者
就是用的第三发例程移植的,你那是否有可供参考的驱动例程

使用特权

评论回复
15
xxrs|  楼主 | 2020-8-15 23:20 | 只看该作者
已使用滚存,但当用zlgcan做测试时连续发3帧不一样的数据,发送间隔设为0,产生三次中断,有时能从rx0与rx1缓存器中都收到数,数据都正确,有时只能从rx0中收到数,三帧数都一样,都是发出的第一帧数的值,搞不清程序时序逻辑哪里有问题,望赐教!

使用特权

评论回复
16
gongche| | 2020-8-15 23:29 | 只看该作者

可能是溢出了,导致数据写不进去了

使用特权

评论回复
17
xxrs|  楼主 | 2020-8-15 23:34 | 只看该作者

好的,我明天去单位试一下,多谢各位大侠了哈        

使用特权

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

本版积分规则

405

主题

7415

帖子

1

粉丝