关于各种型号单片机delay函数不起作用问题的解决方法

这里以单片机HT45F75为例:

// 定义一个延时xms毫秒的延时函数

void delay(unsigned int xms)  // xms代表需要延时的毫秒数

{

   unsigned int x,y;

   for(x=xms;x>0;x--)

             for(y=960/4;y>0;y--)

             {

                        _nop();           

              };

}

(1)      首先查看时钟频率是否正确,可以通过定时器、串口等验证时钟频率是否正常

(2)      如果系统时钟正常,尝试加一个_nop(),有些可以不加,比如说STM32F4,有些则必须加,如果不加,则delay函数无效,加与不加效果都一样

(3)      一个_nop()执行一个时令周期,对于HT45F74,一个时令周期相当于4个时钟周期

猜你喜欢

转载自blog.csdn.net/jdsnpgxj/article/details/79468680