F_CPU not defined for <util/delay.h> 问题解决

问题描述及原因探究:

        在AVR程序编写的过程中,如果使用了延时函数,在包含 util/delay.h 头文件后,编译会报一个警告——

	F_CPU not defined for \<util/delay.h\> 

        该警告出现的原因是因为单片机在进行延时时需要通过其所使用的晶振频率来计算时间,从而保证延时的准确性。如果没有为延时函数提供正确的频率的话,延时会出现不准确的情况。

        当然,如果没有进行宏定义的话,delay.h中会自行添加一个频率,“#define F_CPU 1000000UL”,但是该频率并非我们所使用的频率会导致程序延时错乱。

解决办法:

        查看单片机上晶振的频率,然后根据该频率值,在包含延时头文件 “util/delay.h”前先进行宏定义,如:

#define F_CPU 7372800UL
#include <util/delay.h>

注:

        频率数值后面的 UL 表示该数值为 unsigned long 类型, 不要省去。

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值