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,例程是发送,接收分开进行,需要打开例程的接收功能。

 

硬件原因:硬件原因就与发送失败一样了,常见原因参考发送失败的硬件原因就行了。

 

posted @ 2024-08-23 11:08  WCH_CH32  阅读(299)  评论(0编辑  收藏  举报