STM32F769IDiscovery  1.00
uDANTE Audio Networking with STM32F7 DISCO board
stm32f7xx_hal_adc.h
Go to the documentation of this file.
1 
38 /* Define to prevent recursive inclusion -------------------------------------*/
39 #ifndef __STM32F7xx_ADC_H
40 #define __STM32F7xx_ADC_H
41 
42 #ifdef __cplusplus
43  extern "C" {
44 #endif
45 
46 /* Includes ------------------------------------------------------------------*/
47 #include "stm32f7xx_hal_def.h"
48 
57 /* Exported types ------------------------------------------------------------*/
75 typedef struct
76 {
77  uint32_t ClockPrescaler;
80  uint32_t Resolution;
82  uint32_t DataAlign;
85  uint32_t ScanConvMode;
92  uint32_t EOCSelection;
99  uint32_t ContinuousConvMode;
102  uint32_t NbrOfConversion;
112  uint32_t ExternalTrigConv;
125 
126 
127 
133 typedef struct
134 {
135  uint32_t Channel;
137  uint32_t Rank;
139  uint32_t SamplingTime;
148  uint32_t Offset;
150 
154 typedef struct
155 {
156  uint32_t WatchdogMode;
158  uint32_t HighThreshold;
160  uint32_t LowThreshold;
162  uint32_t Channel;
165  uint32_t ITMode;
168  uint32_t WatchdogNumber;
170 
174 /* States of ADC global scope */
175 #define HAL_ADC_STATE_RESET ((uint32_t)0x00000000U)
176 #define HAL_ADC_STATE_READY ((uint32_t)0x00000001U)
177 #define HAL_ADC_STATE_BUSY_INTERNAL ((uint32_t)0x00000002U)
178 #define HAL_ADC_STATE_TIMEOUT ((uint32_t)0x00000004U)
180 /* States of ADC errors */
181 #define HAL_ADC_STATE_ERROR_INTERNAL ((uint32_t)0x00000010U)
182 #define HAL_ADC_STATE_ERROR_CONFIG ((uint32_t)0x00000020U)
183 #define HAL_ADC_STATE_ERROR_DMA ((uint32_t)0x00000040U)
185 /* States of ADC group regular */
186 #define HAL_ADC_STATE_REG_BUSY ((uint32_t)0x00000100U)
188 #define HAL_ADC_STATE_REG_EOC ((uint32_t)0x00000200U)
189 #define HAL_ADC_STATE_REG_OVR ((uint32_t)0x00000400U)
191 /* States of ADC group injected */
192 #define HAL_ADC_STATE_INJ_BUSY ((uint32_t)0x00001000U)
194 #define HAL_ADC_STATE_INJ_EOC ((uint32_t)0x00002000U)
196 /* States of ADC analog watchdogs */
197 #define HAL_ADC_STATE_AWD1 ((uint32_t)0x00010000U)
198 #define HAL_ADC_STATE_AWD2 ((uint32_t)0x00020000U)
199 #define HAL_ADC_STATE_AWD3 ((uint32_t)0x00040000U)
201 /* States of ADC multi-mode */
202 #define HAL_ADC_STATE_MULTIMODE_SLAVE ((uint32_t)0x00100000U)
208 typedef struct
209 {
210  ADC_TypeDef *Instance;
214  __IO uint32_t NbrOfCurrentConversionRank;
216  DMA_HandleTypeDef *DMA_Handle;
220  __IO uint32_t State;
222  __IO uint32_t ErrorCode;
228 /* Exported constants --------------------------------------------------------*/
236 #define HAL_ADC_ERROR_NONE ((uint32_t)0x00U)
237 #define HAL_ADC_ERROR_INTERNAL ((uint32_t)0x01U)
239 #define HAL_ADC_ERROR_OVR ((uint32_t)0x02U)
240 #define HAL_ADC_ERROR_DMA ((uint32_t)0x04U)
249 #define ADC_CLOCK_SYNC_PCLK_DIV2 ((uint32_t)0x00000000U)
250 #define ADC_CLOCK_SYNC_PCLK_DIV4 ((uint32_t)ADC_CCR_ADCPRE_0)
251 #define ADC_CLOCK_SYNC_PCLK_DIV6 ((uint32_t)ADC_CCR_ADCPRE_1)
252 #define ADC_CLOCK_SYNC_PCLK_DIV8 ((uint32_t)ADC_CCR_ADCPRE)
260 #define ADC_TWOSAMPLINGDELAY_5CYCLES ((uint32_t)0x00000000U)
261 #define ADC_TWOSAMPLINGDELAY_6CYCLES ((uint32_t)ADC_CCR_DELAY_0)
262 #define ADC_TWOSAMPLINGDELAY_7CYCLES ((uint32_t)ADC_CCR_DELAY_1)
263 #define ADC_TWOSAMPLINGDELAY_8CYCLES ((uint32_t)(ADC_CCR_DELAY_1 | ADC_CCR_DELAY_0))
264 #define ADC_TWOSAMPLINGDELAY_9CYCLES ((uint32_t)ADC_CCR_DELAY_2)
265 #define ADC_TWOSAMPLINGDELAY_10CYCLES ((uint32_t)(ADC_CCR_DELAY_2 | ADC_CCR_DELAY_0))
266 #define ADC_TWOSAMPLINGDELAY_11CYCLES ((uint32_t)(ADC_CCR_DELAY_2 | ADC_CCR_DELAY_1))
267 #define ADC_TWOSAMPLINGDELAY_12CYCLES ((uint32_t)(ADC_CCR_DELAY_2 | ADC_CCR_DELAY_1 | ADC_CCR_DELAY_0))
268 #define ADC_TWOSAMPLINGDELAY_13CYCLES ((uint32_t)ADC_CCR_DELAY_3)
269 #define ADC_TWOSAMPLINGDELAY_14CYCLES ((uint32_t)(ADC_CCR_DELAY_3 | ADC_CCR_DELAY_0))
270 #define ADC_TWOSAMPLINGDELAY_15CYCLES ((uint32_t)(ADC_CCR_DELAY_3 | ADC_CCR_DELAY_1))
271 #define ADC_TWOSAMPLINGDELAY_16CYCLES ((uint32_t)(ADC_CCR_DELAY_3 | ADC_CCR_DELAY_1 | ADC_CCR_DELAY_0))
272 #define ADC_TWOSAMPLINGDELAY_17CYCLES ((uint32_t)(ADC_CCR_DELAY_3 | ADC_CCR_DELAY_2))
273 #define ADC_TWOSAMPLINGDELAY_18CYCLES ((uint32_t)(ADC_CCR_DELAY_3 | ADC_CCR_DELAY_2 | ADC_CCR_DELAY_0))
274 #define ADC_TWOSAMPLINGDELAY_19CYCLES ((uint32_t)(ADC_CCR_DELAY_3 | ADC_CCR_DELAY_2 | ADC_CCR_DELAY_1))
275 #define ADC_TWOSAMPLINGDELAY_20CYCLES ((uint32_t)ADC_CCR_DELAY)
283 #define ADC_RESOLUTION_12B ((uint32_t)0x00000000U)
284 #define ADC_RESOLUTION_10B ((uint32_t)ADC_CR1_RES_0)
285 #define ADC_RESOLUTION_8B ((uint32_t)ADC_CR1_RES_1)
286 #define ADC_RESOLUTION_6B ((uint32_t)ADC_CR1_RES)
294 #define ADC_EXTERNALTRIGCONVEDGE_NONE ((uint32_t)0x00000000U)
295 #define ADC_EXTERNALTRIGCONVEDGE_RISING ((uint32_t)ADC_CR2_EXTEN_0)
296 #define ADC_EXTERNALTRIGCONVEDGE_FALLING ((uint32_t)ADC_CR2_EXTEN_1)
297 #define ADC_EXTERNALTRIGCONVEDGE_RISINGFALLING ((uint32_t)ADC_CR2_EXTEN)
305 /* Note: Parameter ADC_SOFTWARE_START is a software parameter used for */
306 /* compatibility with other STM32 devices. */
307 
308 
309 #define ADC_EXTERNALTRIGCONV_T1_CC1 ((uint32_t)0x00000000U)
310 #define ADC_EXTERNALTRIGCONV_T1_CC2 ((uint32_t)ADC_CR2_EXTSEL_0)
311 #define ADC_EXTERNALTRIGCONV_T1_CC3 ((uint32_t)ADC_CR2_EXTSEL_1)
312 #define ADC_EXTERNALTRIGCONV_T2_CC2 ((uint32_t)(ADC_CR2_EXTSEL_1 | ADC_CR2_EXTSEL_0))
313 #define ADC_EXTERNALTRIGCONV_T5_TRGO ((uint32_t)ADC_CR2_EXTSEL_2)
314 #define ADC_EXTERNALTRIGCONV_T4_CC4 ((uint32_t)(ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_0))
315 #define ADC_EXTERNALTRIGCONV_T3_CC4 ((uint32_t)(ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_1))
316 #define ADC_EXTERNALTRIGCONV_T8_TRGO ((uint32_t)(ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_1 | ADC_CR2_EXTSEL_0))
317 #define ADC_EXTERNALTRIGCONV_T8_TRGO2 ((uint32_t)ADC_CR2_EXTSEL_3)
318 #define ADC_EXTERNALTRIGCONV_T1_TRGO ((uint32_t)(ADC_CR2_EXTSEL_3 | ADC_CR2_EXTSEL_0))
319 #define ADC_EXTERNALTRIGCONV_T1_TRGO2 ((uint32_t)(ADC_CR2_EXTSEL_3 | ADC_CR2_EXTSEL_1))
320 #define ADC_EXTERNALTRIGCONV_T2_TRGO ((uint32_t)(ADC_CR2_EXTSEL_3 | ADC_CR2_EXTSEL_1 | ADC_CR2_EXTSEL_0))
321 #define ADC_EXTERNALTRIGCONV_T4_TRGO ((uint32_t)(ADC_CR2_EXTSEL_3 | ADC_CR2_EXTSEL_2))
322 #define ADC_EXTERNALTRIGCONV_T6_TRGO ((uint32_t)(ADC_CR2_EXTSEL_3 | ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_0))
324 #define ADC_EXTERNALTRIGCONV_EXT_IT11 ((uint32_t)ADC_CR2_EXTSEL)
325 #define ADC_SOFTWARE_START ((uint32_t)ADC_CR2_EXTSEL + 1)
326 
334 #define ADC_DATAALIGN_RIGHT ((uint32_t)0x00000000U)
335 #define ADC_DATAALIGN_LEFT ((uint32_t)ADC_CR2_ALIGN)
336 
343 #define ADC_CHANNEL_0 ((uint32_t)0x00000000U)
344 #define ADC_CHANNEL_1 ((uint32_t)ADC_CR1_AWDCH_0)
345 #define ADC_CHANNEL_2 ((uint32_t)ADC_CR1_AWDCH_1)
346 #define ADC_CHANNEL_3 ((uint32_t)(ADC_CR1_AWDCH_1 | ADC_CR1_AWDCH_0))
347 #define ADC_CHANNEL_4 ((uint32_t)ADC_CR1_AWDCH_2)
348 #define ADC_CHANNEL_5 ((uint32_t)(ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_0))
349 #define ADC_CHANNEL_6 ((uint32_t)(ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_1))
350 #define ADC_CHANNEL_7 ((uint32_t)(ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_1 | ADC_CR1_AWDCH_0))
351 #define ADC_CHANNEL_8 ((uint32_t)ADC_CR1_AWDCH_3)
352 #define ADC_CHANNEL_9 ((uint32_t)(ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_0))
353 #define ADC_CHANNEL_10 ((uint32_t)(ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_1))
354 #define ADC_CHANNEL_11 ((uint32_t)(ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_1 | ADC_CR1_AWDCH_0))
355 #define ADC_CHANNEL_12 ((uint32_t)(ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_2))
356 #define ADC_CHANNEL_13 ((uint32_t)(ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_0))
357 #define ADC_CHANNEL_14 ((uint32_t)(ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_1))
358 #define ADC_CHANNEL_15 ((uint32_t)(ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_1 | ADC_CR1_AWDCH_0))
359 #define ADC_CHANNEL_16 ((uint32_t)ADC_CR1_AWDCH_4)
360 #define ADC_CHANNEL_17 ((uint32_t)(ADC_CR1_AWDCH_4 | ADC_CR1_AWDCH_0))
361 #define ADC_CHANNEL_18 ((uint32_t)(ADC_CR1_AWDCH_4 | ADC_CR1_AWDCH_1))
363 #define ADC_CHANNEL_VREFINT ((uint32_t)ADC_CHANNEL_17)
364 #define ADC_CHANNEL_VBAT ((uint32_t)ADC_CHANNEL_18)
365 
372 #define ADC_SAMPLETIME_3CYCLES ((uint32_t)0x00000000U)
373 #define ADC_SAMPLETIME_15CYCLES ((uint32_t)ADC_SMPR1_SMP10_0)
374 #define ADC_SAMPLETIME_28CYCLES ((uint32_t)ADC_SMPR1_SMP10_1)
375 #define ADC_SAMPLETIME_56CYCLES ((uint32_t)(ADC_SMPR1_SMP10_1 | ADC_SMPR1_SMP10_0))
376 #define ADC_SAMPLETIME_84CYCLES ((uint32_t)ADC_SMPR1_SMP10_2)
377 #define ADC_SAMPLETIME_112CYCLES ((uint32_t)(ADC_SMPR1_SMP10_2 | ADC_SMPR1_SMP10_0))
378 #define ADC_SAMPLETIME_144CYCLES ((uint32_t)(ADC_SMPR1_SMP10_2 | ADC_SMPR1_SMP10_1))
379 #define ADC_SAMPLETIME_480CYCLES ((uint32_t)ADC_SMPR1_SMP10)
387 #define ADC_EOC_SEQ_CONV ((uint32_t)0x00000000U)
388 #define ADC_EOC_SINGLE_CONV ((uint32_t)0x00000001U)
389 #define ADC_EOC_SINGLE_SEQ_CONV ((uint32_t)0x00000002U)
397 #define ADC_AWD_EVENT ((uint32_t)ADC_FLAG_AWD)
398 #define ADC_OVR_EVENT ((uint32_t)ADC_FLAG_OVR)
399 
406 #define ADC_ANALOGWATCHDOG_SINGLE_REG ((uint32_t)(ADC_CR1_AWDSGL | ADC_CR1_AWDEN))
407 #define ADC_ANALOGWATCHDOG_SINGLE_INJEC ((uint32_t)(ADC_CR1_AWDSGL | ADC_CR1_JAWDEN))
408 #define ADC_ANALOGWATCHDOG_SINGLE_REGINJEC ((uint32_t)(ADC_CR1_AWDSGL | ADC_CR1_AWDEN | ADC_CR1_JAWDEN))
409 #define ADC_ANALOGWATCHDOG_ALL_REG ((uint32_t)ADC_CR1_AWDEN)
410 #define ADC_ANALOGWATCHDOG_ALL_INJEC ((uint32_t)ADC_CR1_JAWDEN)
411 #define ADC_ANALOGWATCHDOG_ALL_REGINJEC ((uint32_t)(ADC_CR1_AWDEN | ADC_CR1_JAWDEN))
412 #define ADC_ANALOGWATCHDOG_NONE ((uint32_t)0x00000000U)
420 #define ADC_IT_EOC ((uint32_t)ADC_CR1_EOCIE)
421 #define ADC_IT_AWD ((uint32_t)ADC_CR1_AWDIE)
422 #define ADC_IT_JEOC ((uint32_t)ADC_CR1_JEOCIE)
423 #define ADC_IT_OVR ((uint32_t)ADC_CR1_OVRIE)
431 #define ADC_FLAG_AWD ((uint32_t)ADC_SR_AWD)
432 #define ADC_FLAG_EOC ((uint32_t)ADC_SR_EOC)
433 #define ADC_FLAG_JEOC ((uint32_t)ADC_SR_JEOC)
434 #define ADC_FLAG_JSTRT ((uint32_t)ADC_SR_JSTRT)
435 #define ADC_FLAG_STRT ((uint32_t)ADC_SR_STRT)
436 #define ADC_FLAG_OVR ((uint32_t)ADC_SR_OVR)
444 #define ADC_ALL_CHANNELS ((uint32_t)0x00000001U)
445 #define ADC_REGULAR_CHANNELS ((uint32_t)0x00000002U)
446 #define ADC_INJECTED_CHANNELS ((uint32_t)0x00000003U)
455 /* Exported macro ------------------------------------------------------------*/
456 
464 #define __HAL_ADC_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_ADC_STATE_RESET)
465 
471 #define __HAL_ADC_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR2 |= ADC_CR2_ADON)
472 
478 #define __HAL_ADC_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR2 &= ~ADC_CR2_ADON)
479 
486 #define __HAL_ADC_ENABLE_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->CR1) |= (__INTERRUPT__))
487 
494 #define __HAL_ADC_DISABLE_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->CR1) &= ~(__INTERRUPT__))
495 
501 #define __HAL_ADC_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->CR1 & (__INTERRUPT__)) == (__INTERRUPT__))
502 
509 #define __HAL_ADC_CLEAR_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR) = ~(__FLAG__))
510 
517 #define __HAL_ADC_GET_FLAG(__HANDLE__, __FLAG__) ((((__HANDLE__)->Instance->SR) & (__FLAG__)) == (__FLAG__))
518 
523 /* Include ADC HAL Extension module */
524 #include "stm32f7xx_hal_adc_ex.h"
525 
526 /* Exported functions --------------------------------------------------------*/
534 /* Initialization/de-initialization functions ***********************************/
546 /* I/O operation functions ******************************************************/
550 
551 HAL_StatusTypeDef HAL_ADC_PollForEvent(ADC_HandleTypeDef* hadc, uint32_t EventType, uint32_t Timeout);
552 
555 
557 
558 HAL_StatusTypeDef HAL_ADC_Start_DMA(ADC_HandleTypeDef* hadc, uint32_t* pData, uint32_t Length);
560 
561 uint32_t HAL_ADC_GetValue(ADC_HandleTypeDef* hadc);
562 
574 /* Peripheral Control functions *************************************************/
584 /* Peripheral State functions ***************************************************/
585 uint32_t HAL_ADC_GetState(ADC_HandleTypeDef* hadc);
586 uint32_t HAL_ADC_GetError(ADC_HandleTypeDef *hadc);
595 /* Private types -------------------------------------------------------------*/
596 /* Private variables ---------------------------------------------------------*/
597 /* Private constants ---------------------------------------------------------*/
601 /* Delay for ADC stabilization time. */
602 /* Maximum delay is 1us (refer to device datasheet, parameter tSTAB). */
603 /* Unit: us */
604 #define ADC_STAB_DELAY_US ((uint32_t) 3U)
605 /* Delay for temperature sensor stabilization time. */
606 /* Maximum delay is 10us (refer to device datasheet, parameter tSTART). */
607 /* Unit: us */
608 #define ADC_TEMPSENSOR_DELAY_US ((uint32_t) 10U)
609 
613 /* Private macros ------------------------------------------------------------*/
617 /* Macro reserved for internal HAL driver usage, not intended to be used in
618  code of final user */
619 
625 #define ADC_IS_ENABLE(__HANDLE__) \
626  ((( ((__HANDLE__)->Instance->SR & ADC_SR_ADONS) == ADC_SR_ADONS ) \
627  ) ? SET : RESET)
635 #define ADC_IS_SOFTWARE_START_REGULAR(__HANDLE__) \
636  (((__HANDLE__)->Instance->CR2 & ADC_CR2_EXTEN) == RESET)
637 
644 #define ADC_IS_SOFTWARE_START_INJECTED(__HANDLE__) \
645  (((__HANDLE__)->Instance->CR2 & ADC_CR2_JEXTEN) == RESET)
646 
654 #define ADC_STATE_CLR_SET MODIFY_REG
655 
661 #define ADC_CLEAR_ERRORCODE(__HANDLE__) \
662  ((__HANDLE__)->ErrorCode = HAL_ADC_ERROR_NONE)
663 #define IS_ADC_CLOCKPRESCALER(__ADC_CLOCK__) (((__ADC_CLOCK__) == ADC_CLOCK_SYNC_PCLK_DIV2) || \
664  ((__ADC_CLOCK__) == ADC_CLOCK_SYNC_PCLK_DIV4) || \
665  ((__ADC_CLOCK__) == ADC_CLOCK_SYNC_PCLK_DIV6) || \
666  ((__ADC_CLOCK__) == ADC_CLOCK_SYNC_PCLK_DIV8))
667 #define IS_ADC_SAMPLING_DELAY(__DELAY__) (((__DELAY__) == ADC_TWOSAMPLINGDELAY_5CYCLES) || \
668  ((__DELAY__) == ADC_TWOSAMPLINGDELAY_6CYCLES) || \
669  ((__DELAY__) == ADC_TWOSAMPLINGDELAY_7CYCLES) || \
670  ((__DELAY__) == ADC_TWOSAMPLINGDELAY_8CYCLES) || \
671  ((__DELAY__) == ADC_TWOSAMPLINGDELAY_9CYCLES) || \
672  ((__DELAY__) == ADC_TWOSAMPLINGDELAY_10CYCLES) || \
673  ((__DELAY__) == ADC_TWOSAMPLINGDELAY_11CYCLES) || \
674  ((__DELAY__) == ADC_TWOSAMPLINGDELAY_12CYCLES) || \
675  ((__DELAY__) == ADC_TWOSAMPLINGDELAY_13CYCLES) || \
676  ((__DELAY__) == ADC_TWOSAMPLINGDELAY_14CYCLES) || \
677  ((__DELAY__) == ADC_TWOSAMPLINGDELAY_15CYCLES) || \
678  ((__DELAY__) == ADC_TWOSAMPLINGDELAY_16CYCLES) || \
679  ((__DELAY__) == ADC_TWOSAMPLINGDELAY_17CYCLES) || \
680  ((__DELAY__) == ADC_TWOSAMPLINGDELAY_18CYCLES) || \
681  ((__DELAY__) == ADC_TWOSAMPLINGDELAY_19CYCLES) || \
682  ((__DELAY__) == ADC_TWOSAMPLINGDELAY_20CYCLES))
683 #define IS_ADC_RESOLUTION(__RESOLUTION__) (((__RESOLUTION__) == ADC_RESOLUTION_12B) || \
684  ((__RESOLUTION__) == ADC_RESOLUTION_10B) || \
685  ((__RESOLUTION__) == ADC_RESOLUTION_8B) || \
686  ((__RESOLUTION__) == ADC_RESOLUTION_6B))
687 #define IS_ADC_EXT_TRIG_EDGE(__EDGE__) (((__EDGE__) == ADC_EXTERNALTRIGCONVEDGE_NONE) || \
688  ((__EDGE__) == ADC_EXTERNALTRIGCONVEDGE_RISING) || \
689  ((__EDGE__) == ADC_EXTERNALTRIGCONVEDGE_FALLING) || \
690  ((__EDGE__) == ADC_EXTERNALTRIGCONVEDGE_RISINGFALLING))
691 #define IS_ADC_EXT_TRIG(__REGTRIG__) (((__REGTRIG__) == ADC_EXTERNALTRIGCONV_T1_CC1) || \
692  ((__REGTRIG__) == ADC_EXTERNALTRIGCONV_T1_CC2) || \
693  ((__REGTRIG__) == ADC_EXTERNALTRIGCONV_T1_CC3) || \
694  ((__REGTRIG__) == ADC_EXTERNALTRIGCONV_T2_CC2) || \
695  ((__REGTRIG__) == ADC_EXTERNALTRIGCONV_T5_TRGO) || \
696  ((__REGTRIG__) == ADC_EXTERNALTRIGCONV_T4_CC4) || \
697  ((__REGTRIG__) == ADC_EXTERNALTRIGCONV_T3_CC4) || \
698  ((__REGTRIG__) == ADC_EXTERNALTRIGCONV_T8_TRGO) || \
699  ((__REGTRIG__) == ADC_EXTERNALTRIGCONV_T8_TRGO2) || \
700  ((__REGTRIG__) == ADC_EXTERNALTRIGCONV_T1_TRGO) || \
701  ((__REGTRIG__) == ADC_EXTERNALTRIGCONV_T1_TRGO2) || \
702  ((__REGTRIG__) == ADC_EXTERNALTRIGCONV_T2_TRGO) || \
703  ((__REGTRIG__) == ADC_EXTERNALTRIGCONV_T4_TRGO) || \
704  ((__REGTRIG__) == ADC_EXTERNALTRIGCONV_T6_TRGO) || \
705  ((__REGTRIG__) == ADC_EXTERNALTRIGCONV_EXT_IT11) || \
706  ((__REGTRIG__) == ADC_SOFTWARE_START))
707 #define IS_ADC_DATA_ALIGN(__ALIGN__) (((__ALIGN__) == ADC_DATAALIGN_RIGHT) || \
708  ((__ALIGN__) == ADC_DATAALIGN_LEFT))
709 
710 #define IS_ADC_SAMPLE_TIME(__TIME__) (((__TIME__) == ADC_SAMPLETIME_3CYCLES) || \
711  ((__TIME__) == ADC_SAMPLETIME_15CYCLES) || \
712  ((__TIME__) == ADC_SAMPLETIME_28CYCLES) || \
713  ((__TIME__) == ADC_SAMPLETIME_56CYCLES) || \
714  ((__TIME__) == ADC_SAMPLETIME_84CYCLES) || \
715  ((__TIME__) == ADC_SAMPLETIME_112CYCLES) || \
716  ((__TIME__) == ADC_SAMPLETIME_144CYCLES) || \
717  ((__TIME__) == ADC_SAMPLETIME_480CYCLES))
718 #define IS_ADC_EOCSelection(__EOCSelection__) (((__EOCSelection__) == ADC_EOC_SINGLE_CONV) || \
719  ((__EOCSelection__) == ADC_EOC_SEQ_CONV) || \
720  ((__EOCSelection__) == ADC_EOC_SINGLE_SEQ_CONV))
721 #define IS_ADC_EVENT_TYPE(__EVENT__) (((__EVENT__) == ADC_AWD_EVENT) || \
722  ((__EVENT__) == ADC_OVR_EVENT))
723 #define IS_ADC_ANALOG_WATCHDOG(__WATCHDOG__) (((__WATCHDOG__) == ADC_ANALOGWATCHDOG_SINGLE_REG) || \
724  ((__WATCHDOG__) == ADC_ANALOGWATCHDOG_SINGLE_INJEC) || \
725  ((__WATCHDOG__) == ADC_ANALOGWATCHDOG_SINGLE_REGINJEC) || \
726  ((__WATCHDOG__) == ADC_ANALOGWATCHDOG_ALL_REG) || \
727  ((__WATCHDOG__) == ADC_ANALOGWATCHDOG_ALL_INJEC) || \
728  ((__WATCHDOG__) == ADC_ANALOGWATCHDOG_ALL_REGINJEC) || \
729  ((__WATCHDOG__) == ADC_ANALOGWATCHDOG_NONE))
730 #define IS_ADC_CHANNELS_TYPE(CHANNEL_TYPE) (((CHANNEL_TYPE) == ADC_ALL_CHANNELS) || \
731  ((CHANNEL_TYPE) == ADC_REGULAR_CHANNELS) || \
732  ((CHANNEL_TYPE) == ADC_INJECTED_CHANNELS))
733 #define IS_ADC_THRESHOLD(__THRESHOLD__) ((__THRESHOLD__) <= ((uint32_t)0xFFF))
734 #define IS_ADC_REGULAR_LENGTH(__LENGTH__) (((__LENGTH__) >= ((uint32_t)1)) && ((__LENGTH__) <= ((uint32_t)16)))
735 #define IS_ADC_REGULAR_RANK(__RANK__) (((__RANK__) >= ((uint32_t)1)) && ((__RANK__) <= ((uint32_t)16)))
736 #define IS_ADC_REGULAR_DISC_NUMBER(__NUMBER__) (((__NUMBER__) >= ((uint32_t)1)) && ((__NUMBER__) <= ((uint32_t)8)))
737 #define IS_ADC_RANGE(__RESOLUTION__, __ADC_VALUE__) \
738  ((((__RESOLUTION__) == ADC_RESOLUTION_12B) && ((__ADC_VALUE__) <= ((uint32_t)0x0FFF))) || \
739  (((__RESOLUTION__) == ADC_RESOLUTION_10B) && ((__ADC_VALUE__) <= ((uint32_t)0x03FF))) || \
740  (((__RESOLUTION__) == ADC_RESOLUTION_8B) && ((__ADC_VALUE__) <= ((uint32_t)0x00FF))) || \
741  (((__RESOLUTION__) == ADC_RESOLUTION_6B) && ((__ADC_VALUE__) <= ((uint32_t)0x003F))))
742 
748 #define ADC_SQR1(_NbrOfConversion_) (((_NbrOfConversion_) - (uint8_t)1) << 20)
749 
756 #define ADC_SMPR1(_SAMPLETIME_, _CHANNELNB_) ((_SAMPLETIME_) << (3 * (((uint32_t)((uint16_t)(_CHANNELNB_))) - 10)))
757 
764 #define ADC_SMPR2(_SAMPLETIME_, _CHANNELNB_) ((_SAMPLETIME_) << (3 * ((uint32_t)((uint16_t)(_CHANNELNB_)))))
765 
772 #define ADC_SQR3_RK(_CHANNELNB_, _RANKNB_) (((uint32_t)((uint16_t)(_CHANNELNB_))) << (5 * ((_RANKNB_) - 1)))
773 
780 #define ADC_SQR2_RK(_CHANNELNB_, _RANKNB_) (((uint32_t)((uint16_t)(_CHANNELNB_))) << (5 * ((_RANKNB_) - 7)))
781 
788 #define ADC_SQR1_RK(_CHANNELNB_, _RANKNB_) (((uint32_t)((uint16_t)(_CHANNELNB_))) << (5 * ((_RANKNB_) - 13)))
789 
795 #define ADC_CR2_CONTINUOUS(_CONTINUOUS_MODE_) ((_CONTINUOUS_MODE_) << 1)
796 
802 #define ADC_CR1_DISCONTINUOUS(_NBR_DISCONTINUOUSCONV_) (((_NBR_DISCONTINUOUSCONV_) - 1) << POSITION_VAL(ADC_CR1_DISCNUM))
803 
809 #define ADC_CR1_SCANCONV(_SCANCONV_MODE_) ((_SCANCONV_MODE_) << 8)
810 
816 #define ADC_CR2_EOCSelection(_EOCSelection_MODE_) ((_EOCSelection_MODE_) << 10)
817 
823 #define ADC_CR2_DMAContReq(_DMAContReq_MODE_) ((_DMAContReq_MODE_) << 9)
824 
830 #define ADC_GET_RESOLUTION(__HANDLE__) (((__HANDLE__)->Instance->CR1) & ADC_CR1_RES)
831 
836 /* Private functions ---------------------------------------------------------*/
853 #ifdef __cplusplus
854 }
855 #endif
856 
857 #endif /*__STM32F7xx_ADC_H */
858 
859 
860 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
void HAL_ADC_IRQHandler(ADC_HandleTypeDef *hadc)
HAL_StatusTypeDef HAL_ADC_AnalogWDGConfig(ADC_HandleTypeDef *hadc, ADC_AnalogWDGConfTypeDef *AnalogWDGConfig)
HAL_StatusTypeDef HAL_ADC_DeInit(ADC_HandleTypeDef *hadc)
uint32_t DiscontinuousConvMode
void HAL_ADC_ConvHalfCpltCallback(ADC_HandleTypeDef *hadc)
Structure definition of ADC channel for regular group.
HAL_StatusTypeDef HAL_ADC_Stop_IT(ADC_HandleTypeDef *hadc)
void HAL_ADC_ErrorCallback(ADC_HandleTypeDef *hadc)
HAL_StatusTypeDef HAL_ADC_PollForEvent(ADC_HandleTypeDef *hadc, uint32_t EventType, uint32_t Timeout)
void HAL_ADC_LevelOutOfWindowCallback(ADC_HandleTypeDef *hadc)
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc)
HAL_LockTypeDef
HAL Lock structures definition.
Structure definition of ADC and regular group initialization.
HAL_StatusTypeDef HAL_ADC_PollForConversion(ADC_HandleTypeDef *hadc, uint32_t Timeout)
uint32_t ExternalTrigConvEdge
HAL_StatusTypeDef HAL_ADC_Start_IT(ADC_HandleTypeDef *hadc)
HAL_StatusTypeDef HAL_ADC_Stop_DMA(ADC_HandleTypeDef *hadc)
#define __IO
Definition: core_cm0.h:213
Analog to Digital Converter.
Definition: stm32f745xx.h:204
HAL_StatusTypeDef HAL_ADC_Init(ADC_HandleTypeDef *hadc)
void HAL_ADC_MspDeInit(ADC_HandleTypeDef *hadc)
HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef *hadc)
void HAL_ADC_MspInit(ADC_HandleTypeDef *hadc)
uint32_t NbrOfDiscConversion
ADC Configuration multi-mode structure definition.
uint32_t HAL_ADC_GetValue(ADC_HandleTypeDef *hadc)
ADC handle Structure definition.
uint32_t DMAContinuousRequests
HAL_StatusTypeDef HAL_ADC_Start_DMA(ADC_HandleTypeDef *hadc, uint32_t *pData, uint32_t Length)
DMA handle Structure definition.
This file contains HAL common defines, enumeration, macros and structures definitions.
uint32_t HAL_ADC_GetError(ADC_HandleTypeDef *hadc)
uint32_t HAL_ADC_GetState(ADC_HandleTypeDef *hadc)
uint32_t ContinuousConvMode
HAL_StatusTypeDef
HAL Status structures definition.
HAL_StatusTypeDef HAL_ADC_ConfigChannel(ADC_HandleTypeDef *hadc, ADC_ChannelConfTypeDef *sConfig)
HAL_StatusTypeDef HAL_ADC_Stop(ADC_HandleTypeDef *hadc)