没有这样的参数?

时间:2016-12-29 07:18:49

标签: struct typedef stm32

我认为,这是一个与C相关的问题。 这个问题也在STM32论坛上提出。 请清楚我的结构

目前,在AC6 + Eclipse环境中构建错误显示,

view

C:/STM32_toolchain/common/Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_adc.h:238:2: error: declaration for parameter 'ADC_HandleTypeDef' but no such parameter
}ADC_HandleTypeDef;
^

但是当你搜索stm32f0xx_hal_adc.h文件时,它写为

typedef struct
{
 ADC_TypeDef          *Instance; /*                      !< Register base address */
ADC_InitTypeDef                 Init;                              /*!< ADC required parameters */
DMA_HandleTypeDef         *DMA_Handle;            /*!< Pointer DMA Handler */
HAL_LockTypeDef                Lock;                         /*!< ADC locking object */
__IO uint32_t                          State;                       /*!< ADC communication state (bitmap of ADC states) */
__IO uint32_t                   ErrorCode;                      /*!< ADC Error code */
}ADC_HandleTypeDef;

是否意味着,ADC_HandleTypeDef未在stm32f0xx_hal_adc.h中声明?

2 个答案:

答案 0 :(得分:0)

如果使用CMSIS,我认为 __ IO 定义在 core_cm0.h 中声明。您需要包含此内容才能构建HAL驱动程序。

答案 1 :(得分:0)

您必须包含此文件,即使您未在CubeMx中启用外围设备,也不会包含该项目中的文件。因为有一个名为stm32f4xx_hal_conf.h的文件,你会看到CubeMx启用的所有文件,如果没有启用,它将会像下面一样发表评论。

/**
  * @brief Include module's header file 
  */

#ifdef HAL_RCC_MODULE_ENABLED
  #include "stm32f4xx_hal_rcc.h"
#endif /* HAL_RCC_MODULE_ENABLED */