位定义错误 - IAR Workbench

时间:2015-07-28 07:20:57

标签: iar stm32f4discovery

我是嵌入式编程的初学者,正在使用IAR工作台为我的项目使用STM32F4Discovery。我正在尝试编译现有代码,并在几个位置有一些关于位定义的错误,如下所示:

Error[Pe020]: identifier "GPIO_PIN_SET" is undefined

现在,GPIO_PIN_SET已在文件stm32f4xx_gpio_hal.h中定义,并已包含在我的项目中。为了在网上查询时解决此问题,我找到了this解决方案。但是,我的IAR Workbench中的System中没有General Options标签。我有一个完整版的IAR Workbench,我不确定为什么缺少System标签。

我也尝试过定义

#define ENABLE_BIT_DEFINITIONS

如我main.c文件中的this链接所述,但无济于事。

尝试设置

#define STM32F4XX
#define USE_STDPERIPH_DRIVER

main.c文件中或定义STM32F4XX中的符号USE_STDPERIPH_DRIVERPreprocessor标签中的General Options标签here MSDN documentation也没有&# 39; t help。

解决方案可能非常简单,我可能会忽略,但我无法弄清楚我可能会遗漏什么。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

在"项目中包含头文件"实际上,您应该(直接或间接地)将它包含在要使用声明的源文件中。在任何中途理智的开发套件中都会如此简单,但我们仍然坚持ST,它们迫使我们按照自己的方式去做。

包含" master"您main.c

中的标题

#include "stm32f429i_discovery.h"

这将包括stm32f4xx_hal.h,其中包含stm32f4xx_hal_conf.h,如果正确的#defines在那里,则包含stm32f4xx_hal_gpio.h

您可能没有stm32f4xx_hal_conf.h

如果是这种情况,则将Drivers \ STM32F4xx_HAL_Driver \ Inc \ stm32f4xx_hal_conf_template.h复制到项目中,将其重命名为stm32f4xx_hal_conf.h。否则,只需确保#define HAL_GPIO_MODULE_ENABLED未被注释掉。

设置正确的#defines

自您编写链接的教程已经发布以来,STM32CubeF4的新版本已经发布,并且有些事情已经明显改变了。从版本1.6.0开始,在预处理器选项中定义 STM32F429xx ,并忘记上面的那些。是的,我已经注意到现在有一​​个版本1.7.0,让我们希望这次兼容性持续。