void Can1_Init(void) { NVIC_InitTypeDef NVIC_InitStructure; // 首先打开电源及时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE); NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); NVIC_InitStructure.NVIC_IRQChannel = USB_HP_CAN1_TX_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); // 然后配置pin Can_GPIO_Config(); CAN_config_init(); CAN_ITConfig(CAN1, CAN_IT_FMP0 | CAN_IT_FF0 | CAN_IT_FOV0, ENABLE); // fifo0中断 CAN_ITConfig(CAN1, CAN_IT_FMP1 | CAN_IT_FF1 | CAN_IT_FOV1, ENABLE); // fifo1中断 //CAN_ITConfig(CAN1, CAN_IT_TME, DISABLE); // 发送中断 }
void CANx_Init(void) { Hash_Table_init(); Can_NVIC_Config(); Can_GPIO_Config(); CAN_CAN_Config(); Can_FILTER_Config(); Can_IT_Config(); }