stm32 can波特率自动识别
时间: 2023-10-17 17:07:01 浏览: 229
STM32 IAP的bootloader+APP - 可自动识别波特率
在STM32中,CAN总线的波特率可以通过自动识别来实现。具体方法如下:
1. 配置CAN总线的时钟源和分频系数,使得CAN总线的时钟频率为1MHz。
2. 配置CAN总线的波特率预设值,即CAN_BTR寄存器的值。
3. 使能CAN总线,并等待它进入初始化模式。
4. 在初始化模式下,向CAN_MCR寄存器的INRQ位写入1,请求进入配置模式。
5. 等待CAN总线进入配置模式。
6. 在配置模式下,向CAN_BTR寄存器写入0,清除SILM位和LBKM位。
7. 向CAN_BTR寄存器的BRP位写入0,即波特率分频系数为1。
8. 向CAN_BTR寄存器的SJW位、TS1位和TS2位写入最大值,即同步跳转宽度为4个时间单位,时间段1为16个时间单位,时间段2为7个时间单位。
9. 向CAN_BTR寄存器的BRP位逐个增加,直到波特率达到预设值为止。
10. 将CAN总线从配置模式切换到正常模式,并等待它进入工作状态。
阅读全文