基于HAL库的CAN通信一:配置
开始前需要明确一件事:CAN网络由CAN控制器和CAN收发器组成,STM32仅集成了CAN控制器。
cubeMX配置
时钟
can外设挂载在APB1上。
Bit Timings Parameters

1、Prescaler:预分频,确定CAN最小时间单位Tq。
Tq = 36MHz/4 = 9MHz

2、配置Baud Rate
Time Quanta in Bit Segment 1 | PBS1段所占的时间,单位(Tq) |
---|---|
Time Quanta in Bit Segment 2 | PBS2段所占的时间,单位(Tq) |
有两个限制:
- stm32f系列最高支持1M速率
- 位段长度限制,如下:

波特率计算公式:
B
a
u
d
R
a
t
e
=
1
(
1
+
4
+
4
)
∗
T
q
Baud Rate = \frac{1}{(1+4+4)*Tq}
BaudRate=(1+4+4)∗Tq1
备注:分母是:(1(SS段)+4(BS1段)+4(BS2段))*Tq。
3、ReSynchronization Jump Width
要理解这一参数的作用,先得理解硬同步和重同步,可以参考这篇博客:硬同步和重同步
ReSynchronization Jump Width表示重同步时BS1延长(或BS2缩短)的最大值。






