rt-thread 下,配置 stm32 的 can

步骤

修改 board/Kconfig,添加 can 相关部分,以下为参考

1
2
3
4
5
6
7
8
9
menuconfig BSP_USING_CAN
bool "enable can"
default n
select RT_USING_CAN
if BSP_USING_CAN
config BSP_USING_CAN1
bool "enable CAN1"
default n
endif
1
2
scons --menuconfig 启用 can
stm32XXxx_hal_conf.h 需要启用 HAL_CAN_MODULE_ENABLED

注意

一定要注意 cubeMX 里面的时钟配置apb1 peripheral clocks,这个和 PSC, BS1, BS2, SJW, 会共同影响波特率错误,导致收不到数据

波特率计算公式 baud = APB_PERIPHERAL_CLOCK / ( PSC*( BS1 + BS2 + SJW) )