下面4行是对can波特率的设置
CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;
CAN_InitStructure.CAN_BS1=CAN_BS1_9tq;
CAN_InitStructure.CAN_BS2=CAN_BS2_6tq;
CAN_InitStructure.CAN_Prescaler=5;
计算公式:
CAN波特率 = CAN时钟/( (CAN_SJW + CAN_BS1 + CAN_BS2) * CAN_Prescaler)
CAN采样点 = ( CAN_SJW + CAN_BS1) / (CAN_SJW + CAN_BS1 + CAN_BS2) ///CAN_SJW一般都设置为CAN_SJW_1tq,也就是1 ///CAN_BS1和 CAN_BS2设置的值根据CAN_BS1_9tq和CAN_BS2_6tq,可看出CAN_BS1 = 9;CAN_BS2=6; 波特率=8M/(1+9+6)/5=100K 采样点=(1+9)/(1+9+6)=62.5%
CAN时钟:
上面计算使用8M,是举例为8M。实际可根据手册查看。手册可以去立创商城查找。例如下面的是stm32f207的就是30MHZ
![](https://img-blog.csdnimg.cn/img_convert/4139cd578583e6b781e22e7402c31c16.png)