求助:编译时出现.error: #20: identifier "IWDG_WriteAccess_Ena

2019-08-17 05:10发布

我在做个看门狗的实验,编译时总出现这个问题,要怎么解决啊?求助啊~~

错误如下:
..HARDWAREWDGwdg.c(10): warning:  #223-D: function "IWDG_WriteAccessCmd" declared implicitly
..HARDWAREWDGwdg.c:          IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);  
..HARDWAREWDGwdg.c(10): error:  #20: identifier "IWDG_WriteAccess_Enable" is undefined
..HARDWAREWDGwdg.c:          IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);  


代码跟原子哥的代码基本相同的~~~~~~~~~

#include "wdg.h"
//初始化独立看门狗 //prer:分频数:0~7(只有低3位有效!) //分频因子=4*2^prer.但最大值只能是256! //rlr:重装载寄存器值:低11位有效. //时间计算(大概):Tout=((4*2^prer)*rlr)/40 (ms). void IWDG_Init(u8 prer,u16 rlr)  {   IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);  //使能对寄存器IWDG_PR和IWDG_RLR的写操作 IWDG_SetPrescaler(prer);  //设置IWDG预分频值:设置IWDG预分频值为64 IWDG_SetReload(rlr);  //设置IWDG重装载值 IWDG_ReloadCounter();  //按照IWDG重装载寄存器的值重装载IWDG计数器 IWDG_Enable();  //使能IWDG } //喂独立看门狗 void IWDG_Feed(void) {      IWDG_ReloadCounter();//reload    }






友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
红色沙漏
2019-08-17 17:39
通过你的编译器来看,不包含“stm32f10x_iwdg.h”这个文件,所以在main.c或者wdg.c或wdg.h中任意一个文件中,加入5#所说的#include "stm32f10x_iwdg.h",编译一下,你会发现编译器中包含了“stm32f10x_iwdg.h”这个文件,然后就不会报错了。我也很奇怪,原子哥的例程是含有“stm32f10x_iwdg.h”这个文件的,但是挪到其他地方自己用的话,就需要加#include "stm32f10x_iwdg.h"这个语句,好奇怪,如果不添加这句话,工程中就没有这个stm32f10x_iwdg.h文件,编译会出错!但是原子哥的并没有添加,请问原子哥,为什么你的没有添加,工程编辑器中却默认含有了stm32f10x_iwdg.h这个文件???@正点原子

一周热门 更多>