900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > STM32F103RCT+TJA1050+USBCAN盒做can通讯

STM32F103RCT+TJA1050+USBCAN盒做can通讯

时间:2019-09-19 22:12:55

相关推荐

STM32F103RCT+TJA1050+USBCAN盒做can通讯

最近买了一块STM32F103RCT的核心版,引出了PB8,PB9,连TJA1050(网上有卖的,几块钱一个)可以做can通讯收发,can发送搞了一两天才搞出来,遇到了一些坑,记录一下。如果你也出现了STM32CAN通讯发不出报文,可以参考下面的方案。

STM32板子最好用电源供电,如果是ST-LINK供电的话,TJA1050也要用ST-LINK上的5V供电,TJA1050是5V供电的,如果STM32板子只用ST-LINK供电,板子上输出的可能没有5V,导致TJA1050无法工作。

TJA1050上的TX接STM32上的TX,RX接STM32上的RX,正常STM32can用的引脚是PA11(RX)和PA12(TX),而复用的引脚是PB8(RX),PB9(TX),这个不要接错了。TJA1050上的CANH接USBCAN的CANH,CANL接USBCAN的CANL。

关于如何复用引脚,其他文章里有说明,不再叙述。

可以用ST-LINK调试,先把CAN设置成回环模式,看发送是否正常,如果正常的话,那就是TJA1050到USBCAN的线路上的问题。如果回环模式发送的都有问题,那大概率就是配置的问题了。

最重要的一点,can线一定要构成回路,不然的话stm32can无法发送数据,导致一直卡在pending中,单引两根线出来,不接其他can通讯设备或can盒的话,是无法通讯的。这个坑了我好久,我之前一直以为不连USBCAN也可以一直发送CAN数据。

**接收端一定要开启一次接收,**STM32才能正常发发送,后面再关掉接收也可以正常发送,这个原因未知,感觉应该跟stm32的can配置有关。

USBCAN连接接收CAN数据时,波特率也要选对,不然的话也会导致STM32CAN发不出来数据。

终于把can发送搞出来了。。。。后面有空再搞接收。。。。希望后面遇到这种问题的童靴可以少走弯路~~

附图一张,延时0.5s发送一帧的数据

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。