1、在实现中断开关试验中,发现不能正常的关闭中断,花了几个小时找到原因。
由于使用系统自带的延时函数(vTaskDelay)会打开中断,所以不能正确的关闭中断。注释掉相关代码即可,改用其他延时函数(也不可以使用HAL_Delay延时)
void interrput_task(void *pvParameters){
static uint32_t total_num = 0;
while (1)
{
total_num+=1;
if(total_num==5){
printf("Disable interrupt-----------\r\n");
portDISABLE_INTERRUPTS();
// vTaskDelay(5000);
//delay_ms(5000);
printf("Enable interrupt---------\r\n");
portENABLE_INTERRUPTS();
}
HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);
vTaskDelay(1000);
}
}