本文采用正点原子STM32f407ZGT6探索者
关于rtt的CAN通信配置可以参考RT-Thread studio 添加CAN通信功能
按上面配置完成后串口会打印下图所示问题:(can dev write data failed!)
这是因为drv_can.c文件中的波特率设置有问题,探索者的时钟为168M,CAN1对应的APB1时钟为42M,正点原子官方文档给的波特率500kbps,对应的位时序参数为1、6、7、6,我们修改drv_can.c的位时序参数为如下图的所示:
接着在can.h文件中修改CANDEFAULTCONFIG 中的第一个参数为CAN500kBaud(rtt默认CAN1MBaud)
这时,CAN已经能够正确通信。
总结:最好按照单片机官方给的位时序设置波特率,并且按照波特率设置CANDEFAULTCONFIG中的第一个参数
CAN测试通过后,再按照RT-Thread学习笔记 – 硬件定时器配置定时器,配置好CAN设备和定时器设备后,就可以使用rtt中的CANfestival软件包了。
这里的CAN设备名和定时器设备名根据实际情况而定,软件包使用最新的版本,要不会报错。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)