STM32F769IDiscovery  1.00
uDANTE Audio Networking with STM32F7 DISCO board
stm32f7xx_hal_adc_ex.h
Go to the documentation of this file.
1 
38 /* Define to prevent recursive inclusion -------------------------------------*/
39 #ifndef __STM32F7xx_ADC_EX_H
40 #define __STM32F7xx_ADC_EX_H
41 
42 #ifdef __cplusplus
43  extern "C" {
44 #endif
45 
46 /* Includes ------------------------------------------------------------------*/
47 #include "stm32f7xx_hal_def.h"
48 
57 /* Exported types ------------------------------------------------------------*/
74 typedef struct
75 {
76  uint32_t InjectedChannel;
79  uint32_t InjectedRank;
91  uint32_t InjectedOffset;
107  uint32_t AutoInjectedConv;
136 typedef struct
137 {
138  uint32_t Mode;
140  uint32_t DMAAccessMode;
142  uint32_t TwoSamplingDelay;
145 
150 /* Exported constants --------------------------------------------------------*/
158 #define ADC_MODE_INDEPENDENT ((uint32_t)0x00000000U)
159 #define ADC_DUALMODE_REGSIMULT_INJECSIMULT ((uint32_t)ADC_CCR_MULTI_0)
160 #define ADC_DUALMODE_REGSIMULT_ALTERTRIG ((uint32_t)ADC_CCR_MULTI_1)
161 #define ADC_DUALMODE_INJECSIMULT ((uint32_t)(ADC_CCR_MULTI_2 | ADC_CCR_MULTI_0))
162 #define ADC_DUALMODE_REGSIMULT ((uint32_t)(ADC_CCR_MULTI_2 | ADC_CCR_MULTI_1))
163 #define ADC_DUALMODE_INTERL ((uint32_t)(ADC_CCR_MULTI_2 | ADC_CCR_MULTI_1 | ADC_CCR_MULTI_0))
164 #define ADC_DUALMODE_ALTERTRIG ((uint32_t)(ADC_CCR_MULTI_3 | ADC_CCR_MULTI_0))
165 #define ADC_TRIPLEMODE_REGSIMULT_INJECSIMULT ((uint32_t)(ADC_CCR_MULTI_4 | ADC_CCR_MULTI_0))
166 #define ADC_TRIPLEMODE_REGSIMULT_AlterTrig ((uint32_t)(ADC_CCR_MULTI_4 | ADC_CCR_MULTI_1))
167 #define ADC_TRIPLEMODE_INJECSIMULT ((uint32_t)(ADC_CCR_MULTI_4 | ADC_CCR_MULTI_2 | ADC_CCR_MULTI_0))
168 #define ADC_TRIPLEMODE_REGSIMULT ((uint32_t)(ADC_CCR_MULTI_4 | ADC_CCR_MULTI_2 | ADC_CCR_MULTI_1))
169 #define ADC_TRIPLEMODE_INTERL ((uint32_t)(ADC_CCR_MULTI_4 | ADC_CCR_MULTI_2 | ADC_CCR_MULTI_1 | ADC_CCR_MULTI_0))
170 #define ADC_TRIPLEMODE_ALTERTRIG ((uint32_t)(ADC_CCR_MULTI_4 | ADC_CCR_MULTI_3 | ADC_CCR_MULTI_0))
171 
178 #define ADC_DMAACCESSMODE_DISABLED ((uint32_t)0x00000000U)
179 #define ADC_DMAACCESSMODE_1 ((uint32_t)ADC_CCR_DMA_0)
180 #define ADC_DMAACCESSMODE_2 ((uint32_t)ADC_CCR_DMA_1)
181 #define ADC_DMAACCESSMODE_3 ((uint32_t)ADC_CCR_DMA)
189 #define ADC_EXTERNALTRIGINJECCONVEDGE_NONE ((uint32_t)0x00000000U)
190 #define ADC_EXTERNALTRIGINJECCONVEDGE_RISING ((uint32_t)ADC_CR2_JEXTEN_0)
191 #define ADC_EXTERNALTRIGINJECCONVEDGE_FALLING ((uint32_t)ADC_CR2_JEXTEN_1)
192 #define ADC_EXTERNALTRIGINJECCONVEDGE_RISINGFALLING ((uint32_t)ADC_CR2_JEXTEN)
193 
200 #define ADC_EXTERNALTRIGINJECCONV_T1_TRGO ((uint32_t)0x00000000U)
201 #define ADC_EXTERNALTRIGINJECCONV_T1_CC4 ((uint32_t)ADC_CR2_JEXTSEL_0)
202 #define ADC_EXTERNALTRIGINJECCONV_T2_TRGO ((uint32_t)ADC_CR2_JEXTSEL_1)
203 #define ADC_EXTERNALTRIGINJECCONV_T2_CC1 ((uint32_t)(ADC_CR2_JEXTSEL_1 | ADC_CR2_JEXTSEL_0))
204 #define ADC_EXTERNALTRIGINJECCONV_T3_CC4 ((uint32_t)ADC_CR2_JEXTSEL_2)
205 #define ADC_EXTERNALTRIGINJECCONV_T4_TRGO ((uint32_t)(ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_0))
206 
207 #define ADC_EXTERNALTRIGINJECCONV_T8_CC4 ((uint32_t)(ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_1 | ADC_CR2_JEXTSEL_0))
208 #define ADC_EXTERNALTRIGINJECCONV_T1_TRGO2 ((uint32_t)ADC_CR2_JEXTSEL_3)
209 #define ADC_EXTERNALTRIGINJECCONV_T8_TRGO ((uint32_t)(ADC_CR2_JEXTSEL_3 | ADC_CR2_JEXTSEL_0))
210 #define ADC_EXTERNALTRIGINJECCONV_T8_TRGO2 ((uint32_t)(ADC_CR2_JEXTSEL_3 | ADC_CR2_JEXTSEL_1))
211 #define ADC_EXTERNALTRIGINJECCONV_T3_CC3 ((uint32_t)(ADC_CR2_JEXTSEL_3 | ADC_CR2_JEXTSEL_1 | ADC_CR2_JEXTSEL_0))
212 #define ADC_EXTERNALTRIGINJECCONV_T5_TRGO ((uint32_t)(ADC_CR2_JEXTSEL_3 | ADC_CR2_JEXTSEL_2))
213 #define ADC_EXTERNALTRIGINJECCONV_T3_CC1 ((uint32_t)(ADC_CR2_JEXTSEL_3 | ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_0))
214 #define ADC_EXTERNALTRIGINJECCONV_T6_TRGO ((uint32_t)(ADC_CR2_JEXTSEL_3 | ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_1))
215 #define ADC_INJECTED_SOFTWARE_START ((uint32_t)ADC_CR2_JEXTSEL + 1)
216 
223 #define ADC_INJECTED_RANK_1 ((uint32_t)0x00000001U)
224 #define ADC_INJECTED_RANK_2 ((uint32_t)0x00000002U)
225 #define ADC_INJECTED_RANK_3 ((uint32_t)0x00000003U)
226 #define ADC_INJECTED_RANK_4 ((uint32_t)0x00000004U)
227 
234 #define ADC_CHANNEL_TEMPSENSOR ((uint32_t)ADC_CHANNEL_18 | 0x10000000U)
235 
243 /* Exported macro ------------------------------------------------------------*/
251 /* Exported functions --------------------------------------------------------*/
260 /* I/O operation functions ******************************************************/
266 uint32_t HAL_ADCEx_InjectedGetValue(ADC_HandleTypeDef* hadc, uint32_t InjectedRank);
267 HAL_StatusTypeDef HAL_ADCEx_MultiModeStart_DMA(ADC_HandleTypeDef* hadc, uint32_t* pData, uint32_t Length);
271 
272 /* Peripheral Control functions *************************************************/
275 
283 /* Private types -------------------------------------------------------------*/
284 /* Private variables ---------------------------------------------------------*/
285 /* Private constants ---------------------------------------------------------*/
294 /* Private macros ------------------------------------------------------------*/
298 #define IS_ADC_CHANNEL(CHANNEL) (((CHANNEL) <= ADC_CHANNEL_18) || \
299  ((CHANNEL) == ADC_CHANNEL_TEMPSENSOR))
300 
301 #define IS_ADC_MODE(__MODE__) (((__MODE__) == ADC_MODE_INDEPENDENT) || \
302  ((__MODE__) == ADC_DUALMODE_REGSIMULT_INJECSIMULT) || \
303  ((__MODE__) == ADC_DUALMODE_REGSIMULT_ALTERTRIG) || \
304  ((__MODE__) == ADC_DUALMODE_INJECSIMULT) || \
305  ((__MODE__) == ADC_DUALMODE_REGSIMULT) || \
306  ((__MODE__) == ADC_DUALMODE_INTERL) || \
307  ((__MODE__) == ADC_DUALMODE_ALTERTRIG) || \
308  ((__MODE__) == ADC_TRIPLEMODE_REGSIMULT_INJECSIMULT) || \
309  ((__MODE__) == ADC_TRIPLEMODE_REGSIMULT_AlterTrig) || \
310  ((__MODE__) == ADC_TRIPLEMODE_INJECSIMULT) || \
311  ((__MODE__) == ADC_TRIPLEMODE_REGSIMULT) || \
312  ((__MODE__) == ADC_TRIPLEMODE_INTERL) || \
313  ((__MODE__) == ADC_TRIPLEMODE_ALTERTRIG))
314 #define IS_ADC_DMA_ACCESS_MODE(__MODE__) (((__MODE__) == ADC_DMAACCESSMODE_DISABLED) || \
315  ((__MODE__) == ADC_DMAACCESSMODE_1) || \
316  ((__MODE__) == ADC_DMAACCESSMODE_2) || \
317  ((__MODE__) == ADC_DMAACCESSMODE_3))
318 #define IS_ADC_EXT_INJEC_TRIG_EDGE(__EDGE__) (((__EDGE__) == ADC_EXTERNALTRIGINJECCONVEDGE_NONE) || \
319  ((__EDGE__) == ADC_EXTERNALTRIGINJECCONVEDGE_RISING) || \
320  ((__EDGE__) == ADC_EXTERNALTRIGINJECCONVEDGE_FALLING) || \
321  ((__EDGE__) == ADC_EXTERNALTRIGINJECCONVEDGE_RISINGFALLING))
322 #define IS_ADC_EXT_INJEC_TRIG(__INJTRIG__) (((__INJTRIG__) == ADC_EXTERNALTRIGINJECCONV_T1_TRGO) || \
323  ((__INJTRIG__) == ADC_EXTERNALTRIGINJECCONV_T1_CC4) || \
324  ((__INJTRIG__) == ADC_EXTERNALTRIGINJECCONV_T2_TRGO) || \
325  ((__INJTRIG__) == ADC_EXTERNALTRIGINJECCONV_T2_CC1) || \
326  ((__INJTRIG__) == ADC_EXTERNALTRIGINJECCONV_T3_CC4) || \
327  ((__INJTRIG__) == ADC_EXTERNALTRIGINJECCONV_T4_TRGO) || \
328  ((__INJTRIG__) == ADC_EXTERNALTRIGINJECCONV_T8_CC4) || \
329  ((__INJTRIG__) == ADC_EXTERNALTRIGINJECCONV_T1_TRGO2) || \
330  ((__INJTRIG__) == ADC_EXTERNALTRIGINJECCONV_T8_TRGO) || \
331  ((__INJTRIG__) == ADC_EXTERNALTRIGINJECCONV_T8_TRGO2) || \
332  ((__INJTRIG__) == ADC_EXTERNALTRIGINJECCONV_T3_CC3) || \
333  ((__INJTRIG__) == ADC_EXTERNALTRIGINJECCONV_T5_TRGO) || \
334  ((__INJTRIG__) == ADC_EXTERNALTRIGINJECCONV_T3_CC1) || \
335  ((__INJTRIG__) == ADC_EXTERNALTRIGINJECCONV_T6_TRGO) || \
336  ((__INJTRIG__) == ADC_INJECTED_SOFTWARE_START))
337 #define IS_ADC_INJECTED_LENGTH(__LENGTH__) (((__LENGTH__) >= ((uint32_t)1)) && ((__LENGTH__) <= ((uint32_t)4)))
338 #define IS_ADC_INJECTED_RANK(__RANK__) (((__RANK__) >= ((uint32_t)1)) && ((__RANK__) <= ((uint32_t)4)))
339 
347 #define ADC_JSQR(_CHANNELNB_, _RANKNB_,_JSQR_JL_) (((uint32_t)((uint16_t)(_CHANNELNB_))) << (5 * (uint8_t)(((_RANKNB_) + 3) - (_JSQR_JL_))))
348 
352 /* Private functions ---------------------------------------------------------*/
369 #ifdef __cplusplus
370 }
371 #endif
372 
373 #endif /*__STM32F7xx_ADC_EX_H */
374 
375 
376 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
uint32_t HAL_ADCEx_MultiModeGetValue(ADC_HandleTypeDef *hadc)
HAL_StatusTypeDef HAL_ADCEx_InjectedStop_IT(ADC_HandleTypeDef *hadc)
HAL_StatusTypeDef HAL_ADCEx_MultiModeConfigChannel(ADC_HandleTypeDef *hadc, ADC_MultiModeTypeDef *multimode)
HAL_StatusTypeDef HAL_ADCEx_InjectedConfigChannel(ADC_HandleTypeDef *hadc, ADC_InjectionConfTypeDef *sConfigInjected)
HAL_StatusTypeDef HAL_ADCEx_MultiModeStart_DMA(ADC_HandleTypeDef *hadc, uint32_t *pData, uint32_t Length)
ADC Configuration multi-mode structure definition.
ADC handle Structure definition.
uint32_t HAL_ADCEx_InjectedGetValue(ADC_HandleTypeDef *hadc, uint32_t InjectedRank)
HAL_StatusTypeDef HAL_ADCEx_InjectedPollForConversion(ADC_HandleTypeDef *hadc, uint32_t Timeout)
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef HAL_ADCEx_InjectedStart(ADC_HandleTypeDef *hadc)
ADC Configuration injected Channel structure definition.
HAL_StatusTypeDef
HAL Status structures definition.
HAL_StatusTypeDef HAL_ADCEx_MultiModeStop_DMA(ADC_HandleTypeDef *hadc)
HAL_StatusTypeDef HAL_ADCEx_InjectedStop(ADC_HandleTypeDef *hadc)
void HAL_ADCEx_InjectedConvCpltCallback(ADC_HandleTypeDef *hadc)
HAL_StatusTypeDef HAL_ADCEx_InjectedStart_IT(ADC_HandleTypeDef *hadc)