如何高效处理mcp2515接收数据

如何高效处理mcp2515接收数据,第1张

MCP2515 在正常运行之前必须进行初始化。只有在配

置源薯迅模式下,才能对器件进行初始化。在上电或复位时,

器件会自动手拆进入配置模式,或通过CANTRL.REQOP 位

设置成“100”也可使器件从任何模式进入配置模式。

当进入配置模式时,所有错误计数器都被清零。只有在

配置模式下,才能对以雹此下寄存器进行修改:

• CNF1、CNF2 和CNF3

• TXRTSCTRL

• 验收过滤寄存器

• 验收屏蔽寄存器

参见《MCP2515_datasheet_cn.pdf》

最简单的办法就是处理错误中断,在出现错误后重置唯历滑mcp2515芯片。

经过观察,发现出现只能发送不能接收的情况是由于没有调用中断服务造成的,而在整个驱动中并没有其它地方会异常释放中断,所以断定为mcp2515本身没有发出中断,发现在CANINTF中断标志位寄存器中有两个错误中断标志位,其它五个为正常情况下烂段的中断标志位,驱动中并没有对错误中断进行处理,造成的结果是总线中发生错误后,错误中断没有处理,CANINTF中的错误标志位始终没有被清除,造成其它中断被堵塞,因此无法接收数据。

而长时间动行后指腊,错误中断计数器达到一定值后,总线就被关闭,所以会出现收发都不正常的情况。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12542549.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存