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);
}

浙公网安备 33010602011771号