CAN--CAN例程发送,接收失败分析
经常会有客户遇到CAN例程测不起来的情况,现总结一下常见问题
问题一:串口打印send Failed
可能原因:
1,波特率不对:按照例程默认参数,经计算是96M/2/12/(1+5+6)=333K,而一般CAN设备不支持该波特率,而250K是很常用的
波特率,且大多设备都支持,所以例程可以改成250K来测试下,具体修改方法有两种,修改主频至72M或者修改CAN的分频系
数均可以得出该波特率。
2,硬件原因:
1),CAN收发器是否正确连接:CAN收发器RX,TX脚要与芯片对应连接,而不是像串口一样交叉连接。
2),CAN收发器是否5V供电:目前市面上收发器都是需要5V供电,电压不对也有可能导致数据发不出去。
3),CAN收发器是否损坏:CAN收发器也可能会有损坏的情况,可以换个收发器进行测试。
问题二:测试接收时发现串口并不打印接收到的数据
1,波特率对不对:可参考上述发送失败案例,将波特率设置成二者一致。
2,ID是否是例程设定的ID:例程默认是0x317,所以对我们芯片发数据时应该用0X317的ID发送。如果想
更改ID,过滤器等配置具体ID过滤器的设定可参考该链接:https://www.cnblogs.com/wchmcu/p/17170782.html
3,例程是发送,接收分开进行,需要打开例程的接收功能。
硬件原因:硬件原因就与发送失败一样了,常见原因参考发送失败的硬件原因就行了。