FreeRTOS 等效于 Zephyr k_busy_wait() 的非阻塞实现
在 FreeRTOS 中,可以使用 'vTaskDelay()' 函数来实现与 Zephyr 的 'k_busy_wait()' 类似的功能,而且不会阻塞其他任务。
'vTaskDelay()' 函数用于使当前任务进入阻塞状态,并在指定的时间后自动唤醒。它的参数是以系统节拍为单位的延迟时间。因此,要实现与 'k_busy_wait()' 类似的效果,可以使用以下代码:
vTaskDelay(pdMS_TO_TICKS(delay_ms));
其中,'pdMS_TO_TICKS()' 宏用于将以毫秒为单位的延迟时间转换为系统节拍数。
需要注意的是,要使用 'vTaskDelay()' 函数,必须在 FreeRTOS 配置中启用系统节拍定时器,并正确配置节拍时间。
原文地址: https://www.cveoy.top/t/topic/phLn 著作权归作者所有。请勿转载和采集!