关于MCP2515帧连发、多发的坑

     工作中的一个项目让我接触到了MCP2515这个can控制器芯片,其低廉的价格让我毫不犹豫的选择了它,然而在使用过程中我发现我遇到了一个bug,就是在我发送某帧数据后,总线上会莫名其妙的多几帧一样的数据,而且相隔时间非常短,在经过一天的折磨后,无意在官方社区网站找到了这个帖子:http://www.microchip.com.cn/community/forum/viewthread.php?tid=9354

     里面提到了一个官方的AN文档,里面的内容大致是:在使用WriteByte(TXB0CTRL,0x08) 这种方式触发数据发送后,必须在数据发送之前拉高CS端口,否则会造成数据多发的现象。

    可是由于我的硬件原因,我并不能满足这一要求,文档里还给出了其他两种结决方法:使用MCP2515的几个特殊指令发送:

或使用硬件触发引脚。

      然而当我使用这两种方式时,又发现一个BUG,就是我发送数据时会发生收不到数据的情况,后经测试,连续写SPI数据后立即触发发送,会造成这一现象,需要在连续写入数据后,在写入一个单字节数据(随便什么数据,我的选择是重新写入数据长度)才能解决。不知道是不是和我的硬件有关,仅作记录以后再详细查找原因。希望对其他人有帮助。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值