..\APP\My_user\GREEN\GREEN.c(28): error: #20: identifier "RCC_APB1ENR1_WWDG2EN" is undefined是什么原因? HAL生成时这个:#define __HAL_RCC_WWDG_CLK_DISABLE() CLEAR_BIT(RCC->APB1ENR1, RCC_APB1ENR1_WWDG2EN) #define RCC_APB1ENR1_WWDGEN_Pos (11U) #define RCC_APB1ENR1_WWDGEN_Msk (0x1UL << RCC_APB1ENR1_WWDGEN_Pos)/*!< 0x00000800 */ #define RCC_APB1ENR1_WWDGEN RCC_APB1ENR1_WWDGEN_Msk |
楼主是不是没有引用对应的头文件导致的。
这个要么是缺少对应的头文件,要么就是所选的芯片型号没有对应的功能
生成HAL时应该是编译没有错的,但是你在自己的应用程序中调用相关函数或参数时,就报错。 在你的应该程序GREEN.c中必须,必须包含有“RCC_APB1ENR1_WWDG2EN”定义的头文件。
补充上面的回答,头文件是一个 还有一个是你型号不对应,寄存器不一样导致的。
如果是CUBE配置的,应该不会出错。可能楼主是找的网上的程序,然后自己选择的芯片与原文件不一致,导致芯片的头文件定义与原工程不匹配,在工程定义中修改一下芯片型号就成了。 最明显的应用就是L系列的芯片与F系列的头文件是有区别的。
不是头文件问题,可以链接到。感觉Cube Mx生成问题,RCC_APB1ENR1_WWDG2EN会不会是RCC_APB1ENR1_WWDGEN呢? #define __HAL_RCC_WWDG_CLK_DISABLE() CLEAR_BIT(RCC->APB1ENR1, RCC_APB1ENR1_WWDG2EN) #define RCC_APB1ENR1_WWDGEN_Pos (11U) #define RCC_APB1ENR1_WWDGEN_Msk (0x1UL << RCC_APB1ENR1_WWDGEN_Pos)/*!< 0x00000800 */ #define RCC_APB1ENR1_WWDGEN RCC_APB1ENR1_WWDGEN_Msk
楼主,如果方便可以把你的工程贴出来。可能是因为头文件引用的问题。虽然可以链接到定义,但是如果不引用头文件,还是会报错的。
一般遇到这样的提示都是和头文件或者配置有关。目前CUBE生成的工程关于头文件引用还没遇到这样的错误。楼主将工程文件贴出来,大家可以帮助编译一下看