1 2 3 4 5 6 7 8 9 10 11 12 | /*****************************************************************************************/ /* FreeRTOS与中断有关的配置选项 */ /*****************************************************************************************/ #ifdef __NVIC_PRIO_BITS #define configPRIO_BITS __NVIC_PRIO_BITS #else #define configPRIO_BITS 4 #endif #define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 15 //中断最低优先级 #define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5 //系统可管理的最高中断优先级 #define configKERNEL_INTERRUPT_PRIORITY ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) ) #define configMAX_SYSCALL_INTERRUPT_PRIORITY ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) ) |
1.configPRIO_BITS
配置系统MCU使用几位优先级,不同的MCU数值不同,STM32为4
2.configLIBRARY_LOWEST_INTERRUPT_PRIORITY
配置MCU最低优先级的级数
3.configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY
配置系统可管理的最高中断优先级
4.configMAX_SYSCALL_INTERRUPT_PRIORITY
配置好后,可以调用API函数管理小于等于此优先级的中断,但不能管理高于此优先级的中断。
5.API函数开关中断
1 2 | portENABLE_INTERRUPTS(); //开中断 portDISABLE_INTERRUPTS(); //关闭中断 |