首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

stm32f407中can波特率的设置有关问题

2013-12-15 
stm32f407中can波特率的设置问题对于stm32 can的时钟为fpclk 30m,我所期望的波特率为baud 500k。那么根

stm32f407中can波特率的设置问题
对于stm32 can的时钟为fpclk = 30m,我所期望的波特率为baud = 500k。那么根据公式 1/baud= (BRP +1)(BS1+BS2+3)*fpclk,算出(BRP +1)(BS1+BS2+3) = 60。那么取BRP = 2,得到BS1+BS2 = 17。然后设置最佳采样点 令 (1+1+BS1)/(1+1+1+BS1+BS2) = 87.5%。最后得出 BRP = 2 , BS1 = 15,BS2 = 2.
设置如下:

CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;
CAN_InitStructure.CAN_BS1=CAN_BS1_16tq;
CAN_InitStructure.CAN_BS2=CAN_BS2_3tq;
CAN_InitStructure.CAN_Prescaler=3;

可是通讯不上。

前提是如果是140000的波特率肯定可以通讯上的
140 000的设置如下
CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;
CAN_InitStructure.CAN_BS1=CAN_BS1_8tq;
CAN_InitStructure.CAN_BS2=CAN_BS2_6tq;
CAN_InitStructure.CAN_Prescaler=14;

[解决办法]
恭喜楼主,贺喜楼主,接分。

热点排行