freertos的延时函数
·
相对延时
void vTaskDelay(TickType_t xTicksToDelay)
void UsarT1_Task(void *argument)
{
/* USER CODE BEGIN UsarT1_Task */
/* Infinite loop */
for(;;)
{
HAL_Delay(2000);
printf("abc\r\n");
vTaskDelay(5000);//也可用osDelay(5000);
}
/* USER CODE END UsarT1_Task */
}
//相对延时是2+5=7秒
绝对延时
void vTaskDelayUntil(TickType_t *pxPreviousWakeTime, TickType_txTimeIncrement)
(记录任务上一次唤醒的系统节拍值;需要延时的tick周期数)
TickType_t xTaskGetTickCount(void)
//获取系统启动后的累计节拍值用于vTaskDelayUntil的第一个参数获取
void delay_Task04(void *argument)
{
/* USER CODE BEGIN delay_Task04 */
TickType_t A =xTaskGetTickCount();
/* Infinite loop */
for(;;)
{
HAL_Delay(2000);
printf("delay\r\n");
vTaskDelayUntil(&A,5000);
//osDelayUntil(5000);
}
/* USER CODE END delay_Task04 */
}
//绝对延时是5秒

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐


所有评论(0)