// #include "Bsp.h" // // INTERRUPT_ST Interrupt[INTERRUPT_NUM]; // // /** // * @brief 中断回调函数初始化为空 // * @param void // * @retval void // * @note 初始化系统中断 // * @example void // */ // void SystemInterruptInit(void) // { // //设定系统中断组 // NVIC_PriorityGroupConfig(NVIC_GROUP_LEVEL); // //清空结构体 // for (uint8_t i = 0;i < INTERRUPT_NUM;i++) // { // Interrupt[i].CallBack = NULL; // } // } // // /** // * @brief 中断回调函数注册 // * @param Vector:中断号 void(*Func)(uint32_t):回调函数 // * @retval void // * @note 将外部传入的函数地址关联到INTERRUPT_ST表中 // * @example void // */ // void InterruptRegister(uint32_t Irqn, void(*Func)(uint32_t)) // { // Interrupt[Irqn].CallBack = Func; // } // // /** // * @brief 中断NVIC配置 // * @param Vector:中断号 NvicPrePriority:主优先级 NvicSubPriority:抢占优先级 // * @retval void // * @note 设定一个中断的优先级 // * @example void // */ // void InterruptSetLevel(uint32_t Vector, uint8_t NvicPrePriority, uint8_t NvicSubPriority) // { // NVIC_InitTypeDef NVIC_InitStructure; // // NVIC_InitStructure.NVIC_IRQChannel = Vector; // NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = NvicPrePriority; // NVIC_InitStructure.NVIC_IRQChannelSubPriority = NvicSubPriority; // NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; // NVIC_Init(&NVIC_InitStructure); // } // // /** // * @brief 关闭中断 // * @param Vector:中断号 // * @retval void // * @note void // * @example void // */ // void InterruptDisable(uint32_t Vector) // { // NVIC_InitTypeDef NVIC_InitStructure; // NVIC_InitStructure.NVIC_IRQChannel = Vector; // NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; // NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; // NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; // NVIC_Init(&NVIC_InitStructure); // } // // void USART1_IRQHandler(void) // { // if (USART_GetFlagStatus(USART1, USART_FLAG_ORE) == SET) // { // USART_ClearFlag(USART1, USART_FLAG_ORE); // } // (*Interrupt[USART1_IRQn].CallBack)((uint32_t)USART1); // } // // void USART2_IRQHandler(void) // { // if (USART_GetFlagStatus(USART2, USART_FLAG_ORE) == SET) // { // USART_ClearFlag(USART2, USART_FLAG_ORE); // } // (*Interrupt[USART2_IRQn].CallBack)((uint32_t)USART2); // } // // void USART3_IRQHandler(void) // { // if (USART_GetFlagStatus(USART3, USART_FLAG_ORE) == SET) // { // USART_ClearFlag(USART3, USART_FLAG_ORE); // } // (*Interrupt[USART3_IRQn].CallBack)((uint32_t)USART3); // } // // // void USART4_IRQHandler(void) // { // if (USART_GetFlagStatus(UART4, USART_FLAG_ORE) == SET) // { // USART_ClearFlag(UART4, USART_FLAG_ORE); // } // (*Interrupt[UART4_IRQn].CallBack)((uint32_t)UART4); // } // // void USART5_IRQHandler(void) // { // if (USART_GetFlagStatus(UART5, USART_FLAG_ORE) == SET) // { // USART_ClearFlag(UART5, USART_FLAG_ORE); // } // (*Interrupt[UART5_IRQn].CallBack)((uint32_t)UART5); // }