FREERTOS环境下实现微妙级延时

点击查看代码
void njy_delay_ms(uint32_t ms)
{
    if (ms == 0)
    {
        return;
    }
    if (xTaskGetSchedulerState() == taskSCHEDULER_RUNNING)
    {
        vTaskDelay(pdMS_TO_TICKS(ms));
    }
    else
    {
        DelayMs(ms);
    }
}
void njy_delay_us(uint32_t us)
{
    if (us == 0)
    {
        return;
    }
    uint32_t ms = us / 1000;
    if (ms != 0)
    {
        njy_delay_ms(ms);
    }
    DelayUs(us % 1000);
}

posted @ 2026-01-30 14:43  MCU-NI  阅读(0)  评论(0)    收藏  举报