故障现象:使用MCP2515做了一个can通讯电路。能进行正常收发,但是当用户误操作把波特率设置错了以后就不能进行收发了,必须重新上电才ok。
原因分析:当can通讯发生错误后,程序没有进行can的错误处理,致使can总线错误存在或者can总线关闭。
问题:
1.故意把can1 和can2的波特率设置不一样,发送一帧数据,然后读取错误状态寄存器e**,显示接收被动错误。不明白的是明明是发送,怎么错误标志是接收被动错误和接收错误警告?
2.如果can总线在正常收发过程中出现错误或者由于错误致使总线关闭,该怎么处理?我在数据手册里没有看到相关的错误处理的方法和恢复总线的方法。
|