波特率计算
在CAN初始化代码中,以下参数直接影响波特率:
-
Prescaler (预分频器):
hcan1.Init.Prescaler = 6
-
SyncJumpWidth (同步跳转宽度):
CAN_SJW_1TQ
(1个时间量子,TQ) -
TimeSeg1 (时间段1):
CAN_BS1_7TQ
(7 TQ) -
TimeSeg2 (时间段2):
CAN_BS2_6TQ
(6 TQ)
CAN位时间(一个位的时间长度)由以下部分组成:
-
同步段 (Sync Seg): 固定为1 TQ(在STM32中隐含,不直接配置)。
-
时间段1 (BS1): 包括传播段和相位缓冲段1,这里为7 TQ。
-
时间段2 (BS2): 相位缓冲段2,这里为6 TQ。
因此,一个位时间的总时间量子数(TQ)为:
Total TQ
= Sync Seg+BS1+BS2
=1+7+6=14 TQ