我认为,这是一个与C相关的问题。 这个问题也在STM32论坛上提出。 请清楚我的结构
目前,在AC6 + Eclipse环境中构建错误显示,
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中声明?
答案 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 */