CAN_InitStructure.CAN_BS1 = CAN_BS1_5tq; CAN_InitStructure.CAN_BS2 = CAN_BS2_2tq; CAN_InitStructure.CAN_Prescaler = 6;这三个配置出来的can通讯波特率是多少
时间: 2023-05-31 21:07:02 浏览: 79
根据CAN通信的波特率计算公式:
波特率 = CAN时钟频率 / (CAN_Prescaler + 1) / (CAN_BS1 + CAN_BS2 + 1)
假设CAN时钟频率为72MHz,则根据给出的配置:
波特率 = 72MHz / (6 + 1) / (5 + 2 + 1) = 1Mbps
因此,这三个配置出来的CAN通讯波特率是1Mbps。
相关问题
STM32F407初始化CAN2
在使用STM32F407的CAN2之前,需要进行以下初始化步骤:
1. 使能CAN2时钟:RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN2, ENABLE);
2. 配置CAN2引脚:GPIO_PinAFConfig(GPIOB, GPIO_PinSource12, GPIO_AF_CAN2); GPIO_PinAFConfig(GPIOB, GPIO_PinSource13, GPIO_AF_CAN2);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init(GPIOB, &GPIO_InitStructure);
3. CAN2初始化:CAN_DeInit(CAN2); CAN_StructInit(&CAN_InitStructure); CAN_InitStructure.CAN_TTCM = DISABLE; CAN_InitStructure.CAN_ABOM = DISABLE;
CAN_InitStructure.CAN_AWUM = DISABLE; CAN_InitStructure.CAN_NART = DISABLE; CAN_InitStructure.CAN_RFLM = DISABLE; CAN_InitStructure.CAN_TXFP = DISABLE;
CAN_InitStructure.CAN_Mode = CAN_Mode_Normal; CAN_InitStructure.CAN_SJW = CAN_SJW_1tq; CAN_InitStructure.CAN_BS1 = CAN_BS1_6tq; CAN_InitStructure.CAN_BS2 = CAN_BS2_8tq;
CAN_InitStructure.CAN_Prescaler = 4; CAN_Init(CAN2, &CAN_InitStructure);
stm32标准库can通信的波特率怎么计算成1Mbps
要将 STM32 标准库 CAN 通信的波特率计算为 1Mbps,需要进行以下步骤:
1. 确定 CAN 总线的时钟频率,可以通过修改 STM32 的时钟配置来设置。假设时钟频率为 72MHz。
2. 确定 CAN 分频器的值。CAN 分频器决定了 CAN 时钟的频率,根据 CAN 的数据手册可以得知,如果要将 CAN 时钟频率设置为 1MHz,则分频器的值应该为 36。
3. 确定 SJW(同步跳转宽度)和时间段参数。根据 CAN 的数据手册,可以将 SJW 设置为 1 个时间段,时间段参数设置为 1 个时间段的同步跳转 + 7 个时间段的传输段。因此,时间段参数应该设置为 8。
4. 根据以上参数配置 CAN 波特率。根据 STM32 的标准库 API,可以调用以下函数来配置波特率:
```
CAN_InitStructure.CAN_SJW = CAN_SJW_1tq;
CAN_InitStructure.CAN_BS1 = CAN_BS1_7tq;
CAN_InitStructure.CAN_BS2 = CAN_BS2_1tq;
CAN_InitStructure.CAN_Prescaler = 36;
```
其中,CAN_SJW_1tq 表示 SJW 设置为 1 个时间段,CAN_BS1_7tq 表示时间段参数设置为 8,其中同步跳转为 1 个时间段,传输段为 7 个时间段。CAN_BS2_1tq 表示时间段参数中的 Phase 2 设置为 1 个时间段,CAN_Prescaler 设置为 36。
通过以上步骤,就可以将 STM32 标准库 CAN 通信的波特率设置为 1Mbps。