概述
问题描述及原因探究:
在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 类型, 不要省去。
最后
以上就是朴实金毛为你收集整理的F_CPU not defined for
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复