设置波特率的参数就这几个:
- //CAN总线波特率=Fclk/((1+(TSG1+1)+(TSG2+1))*(BRP+1)*2)
- #define TSG1 2 //0~15
- #define TSG2 1 //1~7 (TSG2 不能设置为0)
- #define BRP 3 //0~63
- //24000000/((1+3+2)*4*2)=500KHz
复制代码
波特率计算公式:CAN总线波特率=Fclk/((1+(TSG1+1)+(TSG2+1))*(BRP+1)*2)
计算结果跟 MCU主频、TSG1、TSG2、BRP 四个参数有关
例程主频设置24M,TSG1=2,TSG2=1,BRP=3,四个参数带入公式
计算结果:24000000/((1+3+2)*4*2)=500KHz
如果需要设置250KHz波特率,主频不变情况下修改 TSG1、TSG2、BRP 三个参数就可以,
例如设置 TSG1=2,TSG2=1,BRP=7,将参数带入公式
计算结果:24000000/((1+3+2)*8*2)=250KHz
所以只要修改 BRP 定义就可以实现250KHz波特率:
#define BRP 7 //0~63
|