STM32F103RCT6 CAN 配置1M波特率
时间: 2023-10-11 12:13:26 浏览: 214
要配置 STM32F103RCT6 的 CAN 模块为 1M 波特率,需要进行以下步骤:
1. 确认时钟设置:CAN 模块的时钟源来自 APB1 总线,因此需要先配置 APB1 的时钟。如果 APB1 的时钟为 72MHz,则 CAN 的最大波特率为 1M。如果时钟不是 72MHz,则需要进行适当的设置。
2. 配置波特率:CAN 的波特率由以下参数决定:分频器的分频系数、时间段 1 的长度、时间段 2 的长度和同步跳转宽度。根据 1M 波特率的要求,应该将分频器分频系数设置为 6,时间段 1 的长度设置为 7,时间段 2 的长度设置为 2,同步跳转宽度设置为 1。
3. 启用 CAN 模块:可以使用以下代码启用 CAN 模块:
```
CAN_InitTypeDef can_init;
can_init.ABOM = DISABLE; // 自动总线关闭模式
can_init.AWUM = DISABLE; // 自动唤醒模式
can_init.BS1 = CAN_BS1_7TQ; // 时间段 1 长度
can_init.BS2 = CAN_BS2_2TQ; // 时间段 2 长度
can_init.Mode = CAN_Mode_Normal; // 正常模式
can_init.NART = DISABLE; // 禁用自动重传
can_init.Prescaler = 6; // 分频器分频系数
can_init.RFLM = DISABLE; // 接收 FIFO 锁定模式
can_init.SJW = CAN_SJW_1TQ; // 同步跳转宽度
can_init.TTCM = DISABLE; // 时间戳发送模式
can_init.TXFP = DISABLE; // 发送 FIFO 优先级
CAN_Init(CAN1, &can_init);
```
以上是配置 STM32F103RCT6 的 CAN 模块为 1M 波特率的基本步骤,需要根据实际需求进行适当的修改。
阅读全文