那么HAL_Delay在任务中使用会不会跳出去让别的任务先执行
时间: 2023-05-29 12:02:49 浏览: 42
HAL_Delay函数会在当前任务中阻塞执行一段时间后再继续执行后续代码,不会跳出当前任务让别的任务先执行。因此,如果在任务中使用HAL_Delay函数,会阻塞当前任务的执行,直到延时结束才会继续执行后续代码。需要注意的是,如果任务中使用了较长的延时时间,会导致系统响应变慢或卡死,建议使用其他方式或优化代码来代替延时。
相关问题
在任务调度中使用HAL_Delay函数是否会产生任务的切换
在使用HAL_Delay函数时,当前任务会被阻塞,直到延时时间结束才会继续执行下一条指令。因此,如果在任务调度中使用HAL_Delay函数,会导致当前任务的执行被阻塞,直到延时时间结束。在此期间,其他任务可以继续执行,因此可能会发生任务的切换。
HAL_Delay在运行的时候会被中断打断 吗
是的,HAL_Delay函数在运行的时候会被中断打断。当一个中断请求发生时,如果中断的优先级高于当前任务的优先级,那么中断服务函数会被立即执行,执行完后再回到原来的任务继续执行。因此,如果在调用HAL_Delay时发生了中断,则HAL_Delay函数会被中断打断,处理完中断后会继续执行HAL_Delay函数。但是需要注意的是,如果中断的优先级高于HAL_Delay函数所在的任务,则会先处理中断,而不会继续执行HAL_Delay函数。因此,在使用HAL_Delay函数时,需要合理设置中断优先级,以确保程序的正确性。