小编grz*_*orz的帖子

FreeRTOS vTaskDelayUntil()立即完成

我有一个问题,vTaskDelayUntil()函数没有延迟,但立即完成.这是代码:

TickType_t xLastWakeTime = xTaskGetTickCount();
while(1){
    if (xSemaphoreTake(xSemaphoreRS485, portMAX_DELAY) == pdTRUE) {
        printf("S display data %d\n", xTaskGetTickCount());
        sendDisplayData();
        printf("E display data %d\n", xTaskGetTickCount());
        xSemaphoreGive(xSemaphoreRS485);
        printf("W display data %d\n", xLastWakeTime);
        vTaskDelayUntil(&xLastWakeTime, 2000);
    }
}
Run Code Online (Sandbox Code Playgroud)

从这里我得到以下输出:

S display data 29928
E display data 30534
W display data 3919
S display data 30534
E display data 31140
W display data 5919
S display data 31140
E display data 31746
W display data 7919
S display data 31746
E display data 32352
W display …
Run Code Online (Sandbox Code Playgroud)

c freertos stm32f4

1
推荐指数
1
解决办法
1659
查看次数

标签 统计

c ×1

freertos ×1

stm32f4 ×1