2016-12-29 97 views
1

我想,這是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

你的意思是我不需要介紹任何東西?你不能左右滾動嗎? – Hasan

回答

0

我認爲如果使用CMSIS,定義__IOcore_cm0.h中聲明。你需要包含這些才能構建HAL驅動程序。

+0

你不覺得C:\ STM32_toolchain \ common \ Drivers \ CMSIS \ Include應該放在項目>屬性> C/C++ Build>設置>工具設置>包括? – Hasan

+0

是的,這是一個好的開始,你需要包括core_cm0.h使HAL訪問其符號。 – staringlizard

+0

我這麼多天前做過,但不知道它爲什麼顯示錯誤?這裏有core_cm0.h的升級問題嗎? – Hasan

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 */ 
+0

我想我是這麼做的,看看這個鏈接,https://community.st.com/thread/34449-corrected-clock-setting-from-cubemx – Hasan

+0

確保文件stm32f4xx_hal_conf.h中的define宏是存在#define HAL_ADC_MODULE_ENABLED –