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

关于各种型号单片机delay函数不起作用问题的解决方法这里以单片机HT45F75为例://定义一个延时xms毫秒的延时函数voiddelay(unsignedintxms) //xms代表需要延时的毫秒数{   unsignedintx,y;   for(x=xms;x>0;x–)           for(y=960/4;y>0;y–)           {                     …

大家好,又见面了,我是你们的朋友全栈君。

这里以单片机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个时钟周期

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137525.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号