/**
* @brief CAN 外设初始化
* @param 无
* @retval 无
* @author ***
* @time 2024-2-5
*/
void CAN_Configuration(void)
{
CAN_InitType CAN_InitStructure;
CAN_FilterInitType CAN_FilterInitStructure;
NVIC_InitType NVIC_InitStructure;
CAN_InitStructure.CAN_TTC = DISABLE;
CAN_InitStructure.CAN_ABO = ENABLE;
CAN_InitStructure.CAN_AWU = ENABLE;
CAN_InitStructure.CAN_NART = ENABLE;
CAN_InitStructure.CAN_RFL = DISABLE;
CAN_InitStructure.CAN_TFP = ENABLE;
CAN_InitStructure.CAN_Mode = CAN_Mode_Normal;
CAN_InitStructure.CAN_SJW = CAN_SJW_1tq;
CAN_InitStructure.CAN_BS1 = CAN_BS1_8tq;
CAN_InitStructure.CAN_BS2 = CAN_BS2_3tq;
CAN_InitStructure.CAN_Prescaler = 8;
CAN_Init(CANx, &CAN_InitStructure); ///<SYSCLK=240M, APB1CLK=120M, CAN Baudrate=(240/2)*1000K)/((1+9)*(3+7+2)) = 1000K
CAN_FilterInitStructure.CAN_FilterNumber=0;
CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;
CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_16bit;
CAN_FilterInitStructure.CAN_FilterIdHigh=0x0;
CAN_FilterInitStructure.CAN_FilterIdLow=0x0;
CAN_FilterInitStructure.CAN_FilterMskIdHigh=0x0;
CAN_FilterInitStructure.CAN_FilterMskIdLow=0x0;
CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_FIFO0;
CAN_FilterInitStructure.CAN_FilterActivation=ENABLE;
CAN_FilterInit(CANx, &CAN_FilterInitStructure);
CAN_INTConfig(CANx,CAN_INT_RFP0,ENABLE);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn ;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x01;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
CAN分析仪-接受所有站的消息
最新推荐文章于 2024-09-29 18:14:37 发布