如果不使用定时器,可以使用循环来实现延时函数。下面是一个使用循环实现延时 100 毫秒的例子:

void delay_ms(uint32_t ms) {
    uint32_t i, j;
    
    for (i = 0; i < ms; i++) {
        for (j = 0; j < 21000; j++) { // 根据系统时钟频率调整循环次数
            __NOP(); // 空操作,增加延时时间
        }
    }
}

这个例子中,我们使用两个嵌套的循环来实现延时。外层循环根据延时的毫秒数来控制循环次数,内层循环通过空操作 __NOP() 来增加延时时间。

需要注意的是,这个方法是在没有使用定时器的情况下实现延时的一种方法,但由于循环延时是通过空操作来实现的,所以延时的准确性可能会受到其他任务的干扰。如果需要更精确的延时,建议使用定时器。


原文地址: https://www.cveoy.top/t/topic/palc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录