FreeRTOS关闭中断时不能使用系统延时
在实现中断开关试验中,发现不能正常的关闭中断,由于使用系统自带的延时函数(vTaskDelay)会打开中断,所以不能正确的关闭中断。注释掉相关代码即可,改用其他延时函数(也不可以使用HAL_Delay延时)
static void AppTask_1(void* parameter) { static uint32_t total_num=0; while (1) { total_num++; if (total_num >= 5) { printf("关闭中断.............\r\n"); portDISABLE_INTERRUPTS(); //关闭中断 //vTaskDelay(5000); //不能使用该函数延时 SOFTWARE_DelayMS(5000); //延时5s,这里的延时函数不能使用系统延时,因为系统自带的延时会打开中断 printf("打开中断.............\r\n"); //打开中断 portENABLE_INTERRUPTS(); total_num = 0; } LED1_TOGGLE; vTaskDelay(500); } }