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发送一帧的数据
在这里插入图片描述

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赞哥哥s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值