2016-12-29 1 views
1

Je pense que c'est une question liée au C. Cette question est également posée dans le forum STM32. me effacer Veuillez la structureAucun paramètre de ce type?

Juste au moment, dans AC6 + environnement Eclipse construction montre d'erreur,

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; 
^ 

mais lorsque vous recherchez stm32f0xx_hal_adc.h déposer ses écrits comme

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; 

Cela signifie-t-il que ADC_HandleTypeDef n'est pas déclaré dans stm32f0xx_hal_adc.h?

+2

Cette question est un MESS !!! Vous pouvez à tout le moins indenter ce morceau de code, et écrire les erreurs de compilation dans un paragraphe étroit, de sorte que nous n'aurions pas à le faire défiler latéralement ... –

+0

Vous voulez dire que je n'ai pas besoin de présenter quoi que ce soit? Vous pouvez le faire défiler de gauche à droite et de droite à gauche? – Hasan

Répondre

0

Je pense que la définition __IO est déclarée dans core_cm0.h si vous utilisez CMSIS. Vous devez avoir inclus cela afin de construire des pilotes HAL.

+0

Ne pensez-vous pas, C: \ STM32_toolchain \ common \ Pilotes \ CMSIS \ Include doit être placé sur le projet> propriétés> C/C++ Build> Paramétrage> outil> inclut? – Hasan

+0

Oui, c'est un bon début, vous devez inclure core_cm0.h afin que hal ait accès à ses symboles. – staringlizard

+0

Je l'ai fait il y a tellement de jours, mais ne sais pas pourquoi son mauvais affichage? Y at-il un problème de mise à niveau de core_cm0.h? – Hasan

0

Vous devez inclure ce fichier, même si le fichier dans le projet ne sera pas inclus si vous n'activez pas le périphérique dans le CubeMx. Parce qu'il y a un fichier appelé stm32f4xx_hal_conf.h, vous verrez tous les fichiers activés par CubeMx et s'il n'est pas activé, il sera commenté ci-dessous.

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

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

Je pense que je l'ai fait, jetez un oeil à ce lien, https: //community.st.com/thread/34449-corrected-clock-setting-from-cubemx – Hasan

+0

Assurez-vous que dans le fichier stm32f4xx_hal_conf.h la macro de définition est existe #define HAL_ADC_MODULE_ENABLED –