20#ifndef STM32H7xx_HAL_ADC_H
21#define STM32H7xx_HAL_ADC_H
52#if defined(ADC_VER_V5_V90)
106#if defined(ADC_VER_V5_V90)
170#if defined(ADC_VER_V5_V90)
173 uint32_t SamplingMode;
267#if defined(ADC_VER_V5_V90)
332#if defined(ADC_VER_V5_V90)
333 uint32_t FilteringConfig;
367#define HAL_ADC_STATE_RESET (0x00000000UL)
368#define HAL_ADC_STATE_READY (0x00000001UL)
369#define HAL_ADC_STATE_BUSY_INTERNAL (0x00000002UL)
370#define HAL_ADC_STATE_TIMEOUT (0x00000004UL)
373#define HAL_ADC_STATE_ERROR_INTERNAL (0x00000010UL)
374#define HAL_ADC_STATE_ERROR_CONFIG (0x00000020UL)
375#define HAL_ADC_STATE_ERROR_DMA (0x00000040UL)
378#define HAL_ADC_STATE_REG_BUSY (0x00000100UL)
380#define HAL_ADC_STATE_REG_EOC (0x00000200UL)
381#define HAL_ADC_STATE_REG_OVR (0x00000400UL)
382#define HAL_ADC_STATE_REG_EOSMP (0x00000800UL)
385#define HAL_ADC_STATE_INJ_BUSY (0x00001000UL)
387#define HAL_ADC_STATE_INJ_EOC (0x00002000UL)
388#define HAL_ADC_STATE_INJ_JQOVF (0x00004000UL)
391#define HAL_ADC_STATE_AWD1 (0x00010000UL)
392#define HAL_ADC_STATE_AWD2 (0x00020000UL)
393#define HAL_ADC_STATE_AWD3 (0x00040000UL)
396#define HAL_ADC_STATE_MULTIMODE_SLAVE (0x00100000UL)
405#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1)
406typedef struct __ADC_HandleTypeDef
418#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1)
419 void (* ConvCpltCallback)(
struct __ADC_HandleTypeDef *hadc);
420 void (* ConvHalfCpltCallback)(
struct __ADC_HandleTypeDef *hadc);
421 void (* LevelOutOfWindowCallback)(
struct __ADC_HandleTypeDef *hadc);
422 void (* ErrorCallback)(
struct __ADC_HandleTypeDef *hadc);
423 void (* InjectedConvCpltCallback)(
struct __ADC_HandleTypeDef *hadc);
424 void (* InjectedQueueOverflowCallback)(
struct __ADC_HandleTypeDef *hadc);
425 void (* LevelOutOfWindow2Callback)(
struct __ADC_HandleTypeDef *hadc);
426 void (* LevelOutOfWindow3Callback)(
struct __ADC_HandleTypeDef *hadc);
427 void (* EndOfSamplingCallback)(
struct __ADC_HandleTypeDef *hadc);
428 void (* MspInitCallback)(
struct __ADC_HandleTypeDef *hadc);
429 void (* MspDeInitCallback)(
struct __ADC_HandleTypeDef *hadc);
433#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1)
439 HAL_ADC_CONVERSION_COMPLETE_CB_ID = 0x00U,
440 HAL_ADC_CONVERSION_HALF_CB_ID = 0x01U,
441 HAL_ADC_LEVEL_OUT_OF_WINDOW_1_CB_ID = 0x02U,
442 HAL_ADC_ERROR_CB_ID = 0x03U,
443 HAL_ADC_INJ_CONVERSION_COMPLETE_CB_ID = 0x04U,
444 HAL_ADC_INJ_QUEUE_OVEFLOW_CB_ID = 0x05U,
445 HAL_ADC_LEVEL_OUT_OF_WINDOW_2_CB_ID = 0x06U,
446 HAL_ADC_LEVEL_OUT_OF_WINDOW_3_CB_ID = 0x07U,
447 HAL_ADC_END_OF_SAMPLING_CB_ID = 0x08U,
448 HAL_ADC_MSPINIT_CB_ID = 0x09U,
449 HAL_ADC_MSPDEINIT_CB_ID = 0x0AU
450} HAL_ADC_CallbackIDTypeDef;
473#define HAL_ADC_ERROR_NONE (0x00U)
474#define HAL_ADC_ERROR_INTERNAL (0x01U)
476#define HAL_ADC_ERROR_OVR (0x02U)
477#define HAL_ADC_ERROR_DMA (0x04U)
478#define HAL_ADC_ERROR_JQOVF (0x08U)
479#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1)
480#define HAL_ADC_ERROR_INVALID_CALLBACK (0x10U)
489#define ADC_CLOCK_SYNC_PCLK_DIV1 (LL_ADC_CLOCK_SYNC_PCLK_DIV1)
490#define ADC_CLOCK_SYNC_PCLK_DIV2 (LL_ADC_CLOCK_SYNC_PCLK_DIV2)
491#define ADC_CLOCK_SYNC_PCLK_DIV4 (LL_ADC_CLOCK_SYNC_PCLK_DIV4)
493#define ADC_CLOCK_ASYNC_DIV1 (LL_ADC_CLOCK_ASYNC_DIV1)
494#define ADC_CLOCK_ASYNC_DIV2 (LL_ADC_CLOCK_ASYNC_DIV2)
495#define ADC_CLOCK_ASYNC_DIV4 (LL_ADC_CLOCK_ASYNC_DIV4)
496#define ADC_CLOCK_ASYNC_DIV6 (LL_ADC_CLOCK_ASYNC_DIV6)
497#define ADC_CLOCK_ASYNC_DIV8 (LL_ADC_CLOCK_ASYNC_DIV8)
498#define ADC_CLOCK_ASYNC_DIV10 (LL_ADC_CLOCK_ASYNC_DIV10)
499#define ADC_CLOCK_ASYNC_DIV12 (LL_ADC_CLOCK_ASYNC_DIV12)
500#define ADC_CLOCK_ASYNC_DIV16 (LL_ADC_CLOCK_ASYNC_DIV16)
501#define ADC_CLOCK_ASYNC_DIV32 (LL_ADC_CLOCK_ASYNC_DIV32)
502#define ADC_CLOCK_ASYNC_DIV64 (LL_ADC_CLOCK_ASYNC_DIV64)
503#define ADC_CLOCK_ASYNC_DIV128 (LL_ADC_CLOCK_ASYNC_DIV128)
504#define ADC_CLOCK_ASYNC_DIV256 (LL_ADC_CLOCK_ASYNC_DIV256)
512#define ADC_RESOLUTION_16B (LL_ADC_RESOLUTION_16B)
513#define ADC_RESOLUTION_14B (LL_ADC_RESOLUTION_14B)
514#define ADC_RESOLUTION_12B (LL_ADC_RESOLUTION_12B)
515#define ADC_RESOLUTION_10B (LL_ADC_RESOLUTION_10B)
516#define ADC_RESOLUTION_8B (LL_ADC_RESOLUTION_8B)
518#if defined (ADC_VER_V5_X)
519#define ADC_RESOLUTION_14B_OPT (LL_ADC_RESOLUTION_14B_OPT)
520#define ADC_RESOLUTION_12B_OPT (LL_ADC_RESOLUTION_12B_OPT)
523#if defined(ADC_VER_V5_V90)
524#define ADC_RESOLUTION_6B (LL_ADC_RESOLUTION_6B)
530#if defined(ADC_VER_V5_V90)
534#define ADC3_DATAALIGN_RIGHT (LL_ADC_DATA_ALIGN_RIGHT)
535#define ADC3_DATAALIGN_LEFT (LL_ADC_DATA_ALIGN_LEFT)
544#define ADC_SCAN_DISABLE (0x00000000UL)
545#define ADC_SCAN_ENABLE (0x00000001UL)
554#define ADC_SOFTWARE_START (LL_ADC_REG_TRIG_SOFTWARE)
555#define ADC_EXTERNALTRIG_T1_CC1 (LL_ADC_REG_TRIG_EXT_TIM1_CH1)
556#define ADC_EXTERNALTRIG_T1_CC2 (LL_ADC_REG_TRIG_EXT_TIM1_CH2)
557#define ADC_EXTERNALTRIG_T1_CC3 (LL_ADC_REG_TRIG_EXT_TIM1_CH3)
558#define ADC_EXTERNALTRIG_T2_CC2 (LL_ADC_REG_TRIG_EXT_TIM2_CH2)
559#define ADC_EXTERNALTRIG_T3_TRGO (LL_ADC_REG_TRIG_EXT_TIM3_TRGO)
560#define ADC_EXTERNALTRIG_T4_CC4 (LL_ADC_REG_TRIG_EXT_TIM4_CH4)
561#define ADC_EXTERNALTRIG_EXT_IT11 (LL_ADC_REG_TRIG_EXT_EXTI_LINE11)
562#define ADC_EXTERNALTRIG_T8_TRGO (LL_ADC_REG_TRIG_EXT_TIM8_TRGO)
563#define ADC_EXTERNALTRIG_T8_TRGO2 (LL_ADC_REG_TRIG_EXT_TIM8_TRGO2)
564#define ADC_EXTERNALTRIG_T1_TRGO (LL_ADC_REG_TRIG_EXT_TIM1_TRGO)
565#define ADC_EXTERNALTRIG_T1_TRGO2 (LL_ADC_REG_TRIG_EXT_TIM1_TRGO2)
566#define ADC_EXTERNALTRIG_T2_TRGO (LL_ADC_REG_TRIG_EXT_TIM2_TRGO)
567#define ADC_EXTERNALTRIG_T4_TRGO (LL_ADC_REG_TRIG_EXT_TIM4_TRGO)
568#define ADC_EXTERNALTRIG_T6_TRGO (LL_ADC_REG_TRIG_EXT_TIM6_TRGO)
569#define ADC_EXTERNALTRIG_T15_TRGO (LL_ADC_REG_TRIG_EXT_TIM15_TRGO)
570#define ADC_EXTERNALTRIG_T3_CC4 (LL_ADC_REG_TRIG_EXT_TIM3_CH4)
571#define ADC_EXTERNALTRIG_HR1_ADCTRG1 (LL_ADC_REG_TRIG_EXT_HRTIM_TRG1)
572#define ADC_EXTERNALTRIG_HR1_ADCTRG3 (LL_ADC_REG_TRIG_EXT_HRTIM_TRG3)
573#define ADC_EXTERNALTRIG_LPTIM1_OUT (LL_ADC_REG_TRIG_EXT_LPTIM1_OUT)
574#define ADC_EXTERNALTRIG_LPTIM2_OUT (LL_ADC_REG_TRIG_EXT_LPTIM2_OUT)
575#define ADC_EXTERNALTRIG_LPTIM3_OUT (LL_ADC_REG_TRIG_EXT_LPTIM3_OUT)
577#define ADC_EXTERNALTRIG_T23_TRGO (LL_ADC_REG_TRIG_EXT_TIM23_TRGO)
580#define ADC_EXTERNALTRIG_T24_TRGO (LL_ADC_REG_TRIG_EXT_TIM24_TRGO)
589#define ADC_EXTERNALTRIGCONVEDGE_NONE (0x00000000UL)
590#define ADC_EXTERNALTRIGCONVEDGE_RISING (LL_ADC_REG_TRIG_EXT_RISING)
591#define ADC_EXTERNALTRIGCONVEDGE_FALLING (LL_ADC_REG_TRIG_EXT_FALLING)
592#define ADC_EXTERNALTRIGCONVEDGE_RISINGFALLING (LL_ADC_REG_TRIG_EXT_RISINGFALLING)
596#if defined(ADC_VER_V5_V90)
600#define ADC_SAMPLING_MODE_NORMAL (0x00000000UL)
601#define ADC_SAMPLING_MODE_BULB (ADC3_CFGR2_BULB)
605#define ADC_SAMPLING_MODE_TRIGGER_CONTROLED (ADC3_CFGR2_SMPTRIG)
617#define ADC_EOC_SINGLE_CONV (ADC_ISR_EOC)
618#define ADC_EOC_SEQ_CONV (ADC_ISR_EOS)
626#define ADC_OVR_DATA_PRESERVED (LL_ADC_REG_OVR_DATA_PRESERVED)
627#define ADC_OVR_DATA_OVERWRITTEN (LL_ADC_REG_OVR_DATA_OVERWRITTEN)
635#define ADC_REGULAR_RANK_1 (LL_ADC_REG_RANK_1)
636#define ADC_REGULAR_RANK_2 (LL_ADC_REG_RANK_2)
637#define ADC_REGULAR_RANK_3 (LL_ADC_REG_RANK_3)
638#define ADC_REGULAR_RANK_4 (LL_ADC_REG_RANK_4)
639#define ADC_REGULAR_RANK_5 (LL_ADC_REG_RANK_5)
640#define ADC_REGULAR_RANK_6 (LL_ADC_REG_RANK_6)
641#define ADC_REGULAR_RANK_7 (LL_ADC_REG_RANK_7)
642#define ADC_REGULAR_RANK_8 (LL_ADC_REG_RANK_8)
643#define ADC_REGULAR_RANK_9 (LL_ADC_REG_RANK_9)
644#define ADC_REGULAR_RANK_10 (LL_ADC_REG_RANK_10)
645#define ADC_REGULAR_RANK_11 (LL_ADC_REG_RANK_11)
646#define ADC_REGULAR_RANK_12 (LL_ADC_REG_RANK_12)
647#define ADC_REGULAR_RANK_13 (LL_ADC_REG_RANK_13)
648#define ADC_REGULAR_RANK_14 (LL_ADC_REG_RANK_14)
649#define ADC_REGULAR_RANK_15 (LL_ADC_REG_RANK_15)
650#define ADC_REGULAR_RANK_16 (LL_ADC_REG_RANK_16)
658#define ADC_SAMPLETIME_1CYCLE_5 (LL_ADC_SAMPLINGTIME_1CYCLE_5)
659#define ADC_SAMPLETIME_2CYCLES_5 (LL_ADC_SAMPLINGTIME_2CYCLES_5)
660#define ADC_SAMPLETIME_8CYCLES_5 (LL_ADC_SAMPLINGTIME_8CYCLES_5)
661#define ADC_SAMPLETIME_16CYCLES_5 (LL_ADC_SAMPLINGTIME_16CYCLES_5)
662#define ADC_SAMPLETIME_32CYCLES_5 (LL_ADC_SAMPLINGTIME_32CYCLES_5)
663#define ADC_SAMPLETIME_64CYCLES_5 (LL_ADC_SAMPLINGTIME_64CYCLES_5)
664#define ADC_SAMPLETIME_387CYCLES_5 (LL_ADC_SAMPLINGTIME_387CYCLES_5)
665#define ADC_SAMPLETIME_810CYCLES_5 (LL_ADC_SAMPLINGTIME_810CYCLES_5)
669#if defined(ADC_VER_V5_V90)
673#define ADC3_SAMPLETIME_2CYCLES_5 (LL_ADC_SAMPLINGTIME_ADC3_2CYCLES_5)
674#define ADC3_SAMPLETIME_6CYCLES_5 (LL_ADC_SAMPLINGTIME_ADC3_6CYCLES_5)
675#define ADC3_SAMPLETIME_12CYCLES_5 (LL_ADC_SAMPLINGTIME_ADC3_12CYCLES_5)
676#define ADC3_SAMPLETIME_24CYCLES_5 (LL_ADC_SAMPLINGTIME_ADC3_24CYCLES_5)
677#define ADC3_SAMPLETIME_47CYCLES_5 (LL_ADC_SAMPLINGTIME_ADC3_47CYCLES_5)
678#define ADC3_SAMPLETIME_92CYCLES_5 (LL_ADC_SAMPLINGTIME_ADC3_92CYCLES_5)
679#define ADC3_SAMPLETIME_247CYCLES_5 (LL_ADC_SAMPLINGTIME_ADC3_247CYCLES_5)
680#define ADC3_SAMPLETIME_640CYCLES_5 (LL_ADC_SAMPLINGTIME_ADC3_640CYCLES_5)
681#define ADC3_SAMPLETIME_3CYCLES_5 (ADC_SMPR1_SMPPLUS | LL_ADC_SAMPLINGTIME_ADC3_2CYCLES_5)
691#define ADC_CALIB_OFFSET (LL_ADC_CALIB_OFFSET)
692#define ADC_CALIB_OFFSET_LINEARITY (LL_ADC_CALIB_OFFSET_LINEARITY)
702#define ADC_CHANNEL_0 (LL_ADC_CHANNEL_0)
703#define ADC_CHANNEL_1 (LL_ADC_CHANNEL_1)
704#define ADC_CHANNEL_2 (LL_ADC_CHANNEL_2)
705#define ADC_CHANNEL_3 (LL_ADC_CHANNEL_3)
706#define ADC_CHANNEL_4 (LL_ADC_CHANNEL_4)
707#define ADC_CHANNEL_5 (LL_ADC_CHANNEL_5)
708#define ADC_CHANNEL_6 (LL_ADC_CHANNEL_6)
709#define ADC_CHANNEL_7 (LL_ADC_CHANNEL_7)
710#define ADC_CHANNEL_8 (LL_ADC_CHANNEL_8)
711#define ADC_CHANNEL_9 (LL_ADC_CHANNEL_9)
712#define ADC_CHANNEL_10 (LL_ADC_CHANNEL_10)
713#define ADC_CHANNEL_11 (LL_ADC_CHANNEL_11)
714#define ADC_CHANNEL_12 (LL_ADC_CHANNEL_12)
715#define ADC_CHANNEL_13 (LL_ADC_CHANNEL_13)
716#define ADC_CHANNEL_14 (LL_ADC_CHANNEL_14)
717#define ADC_CHANNEL_15 (LL_ADC_CHANNEL_15)
718#define ADC_CHANNEL_16 (LL_ADC_CHANNEL_16)
719#define ADC_CHANNEL_17 (LL_ADC_CHANNEL_17)
720#define ADC_CHANNEL_18 (LL_ADC_CHANNEL_18)
721#define ADC_CHANNEL_19 (LL_ADC_CHANNEL_19)
722#define ADC_CHANNEL_VREFINT (LL_ADC_CHANNEL_VREFINT)
723#define ADC_CHANNEL_TEMPSENSOR (LL_ADC_CHANNEL_TEMPSENSOR)
724#define ADC_CHANNEL_VBAT (LL_ADC_CHANNEL_VBAT)
725#define ADC_CHANNEL_DAC1CH1_ADC2 (LL_ADC_CHANNEL_DAC1CH1_ADC2)
726#define ADC_CHANNEL_DAC1CH2_ADC2 (LL_ADC_CHANNEL_DAC1CH2_ADC2)
727#if defined (LL_ADC_CHANNEL_DAC2CH1_ADC2)
728#define ADC_CHANNEL_DAC2CH1_ADC2 (LL_ADC_CHANNEL_DAC2CH1_ADC2)
737#define ADC_CONVERSIONDATA_DR ((uint32_t)0x00000000)
738#define ADC_CONVERSIONDATA_DFSDM ((uint32_t)ADC_CFGR_DMNGT_1)
739#define ADC_CONVERSIONDATA_DMA_ONESHOT ((uint32_t)ADC_CFGR_DMNGT_0)
740#define ADC_CONVERSIONDATA_DMA_CIRCULAR ((uint32_t)(ADC_CFGR_DMNGT_0 | ADC_CFGR_DMNGT_1))
747#define ADC_ANALOGWATCHDOG_1 (LL_ADC_AWD1)
748#define ADC_ANALOGWATCHDOG_2 (LL_ADC_AWD2)
749#define ADC_ANALOGWATCHDOG_3 (LL_ADC_AWD3)
754#if defined(ADC_VER_V5_V90)
758#define ADC3_AWD_FILTERING_NONE (0x00000000UL)
759#define ADC3_AWD_FILTERING_2SAMPLES ((ADC3_TR1_AWDFILT_0))
760#define ADC3_AWD_FILTERING_3SAMPLES ((ADC3_TR1_AWDFILT_1))
761#define ADC3_AWD_FILTERING_4SAMPLES ((ADC3_TR1_AWDFILT_1 | ADC3_TR1_AWDFILT_0))
762#define ADC3_AWD_FILTERING_5SAMPLES ((ADC3_TR1_AWDFILT_2))
763#define ADC3_AWD_FILTERING_6SAMPLES ((ADC3_TR1_AWDFILT_2 | ADC3_TR1_AWDFILT_0))
764#define ADC3_AWD_FILTERING_7SAMPLES ((ADC3_TR1_AWDFILT_2 | ADC3_TR1_AWDFILT_1))
765#define ADC3_AWD_FILTERING_8SAMPLES ((ADC3_TR1_AWDFILT_2 | ADC3_TR1_AWDFILT_1 | ADC3_TR1_AWDFILT_0))
774#define ADC_ANALOGWATCHDOG_NONE (0x00000000UL)
775#define ADC_ANALOGWATCHDOG_SINGLE_REG (ADC_CFGR_AWD1SGL | ADC_CFGR_AWD1EN)
776#define ADC_ANALOGWATCHDOG_SINGLE_INJEC (ADC_CFGR_AWD1SGL | ADC_CFGR_JAWD1EN)
777#define ADC_ANALOGWATCHDOG_SINGLE_REGINJEC (ADC_CFGR_AWD1SGL | ADC_CFGR_AWD1EN | ADC_CFGR_JAWD1EN)
778#define ADC_ANALOGWATCHDOG_ALL_REG (ADC_CFGR_AWD1EN)
779#define ADC_ANALOGWATCHDOG_ALL_INJEC (ADC_CFGR_JAWD1EN)
780#define ADC_ANALOGWATCHDOG_ALL_REGINJEC (ADC_CFGR_AWD1EN | ADC_CFGR_JAWD1EN)
784#if defined(ADC_VER_V5_V90)
788#define ADC3_OVERSAMPLING_RATIO_2 (LL_ADC_OVS_RATIO_2)
789#define ADC3_OVERSAMPLING_RATIO_4 (LL_ADC_OVS_RATIO_4)
790#define ADC3_OVERSAMPLING_RATIO_8 (LL_ADC_OVS_RATIO_8)
791#define ADC3_OVERSAMPLING_RATIO_16 (LL_ADC_OVS_RATIO_16)
792#define ADC3_OVERSAMPLING_RATIO_32 (LL_ADC_OVS_RATIO_32)
793#define ADC3_OVERSAMPLING_RATIO_64 (LL_ADC_OVS_RATIO_64)
794#define ADC3_OVERSAMPLING_RATIO_128 (LL_ADC_OVS_RATIO_128)
795#define ADC3_OVERSAMPLING_RATIO_256 (LL_ADC_OVS_RATIO_256)
796#define ADC3_OVERSAMPLING_RATIO_512 (LL_ADC_OVS_RATIO_512)
797#define ADC3_OVERSAMPLING_RATIO_1024 (LL_ADC_OVS_RATIO_1024)
806#define ADC_RIGHTBITSHIFT_NONE (LL_ADC_OVS_SHIFT_NONE)
807#define ADC_RIGHTBITSHIFT_1 (LL_ADC_OVS_SHIFT_RIGHT_1)
808#define ADC_RIGHTBITSHIFT_2 (LL_ADC_OVS_SHIFT_RIGHT_2)
809#define ADC_RIGHTBITSHIFT_3 (LL_ADC_OVS_SHIFT_RIGHT_3)
810#define ADC_RIGHTBITSHIFT_4 (LL_ADC_OVS_SHIFT_RIGHT_4)
811#define ADC_RIGHTBITSHIFT_5 (LL_ADC_OVS_SHIFT_RIGHT_5)
812#define ADC_RIGHTBITSHIFT_6 (LL_ADC_OVS_SHIFT_RIGHT_6)
813#define ADC_RIGHTBITSHIFT_7 (LL_ADC_OVS_SHIFT_RIGHT_7)
814#define ADC_RIGHTBITSHIFT_8 (LL_ADC_OVS_SHIFT_RIGHT_8)
815#define ADC_RIGHTBITSHIFT_9 (LL_ADC_OVS_SHIFT_RIGHT_9)
816#define ADC_RIGHTBITSHIFT_10 (LL_ADC_OVS_SHIFT_RIGHT_10)
817#define ADC_RIGHTBITSHIFT_11 (LL_ADC_OVS_SHIFT_RIGHT_11)
825#define ADC_LEFTBITSHIFT_NONE (LL_ADC_LEFT_BIT_SHIFT_NONE)
826#define ADC_LEFTBITSHIFT_1 (LL_ADC_LEFT_BIT_SHIFT_1)
827#define ADC_LEFTBITSHIFT_2 (LL_ADC_LEFT_BIT_SHIFT_2)
828#define ADC_LEFTBITSHIFT_3 (LL_ADC_LEFT_BIT_SHIFT_3)
829#define ADC_LEFTBITSHIFT_4 (LL_ADC_LEFT_BIT_SHIFT_4)
830#define ADC_LEFTBITSHIFT_5 (LL_ADC_LEFT_BIT_SHIFT_5)
831#define ADC_LEFTBITSHIFT_6 (LL_ADC_LEFT_BIT_SHIFT_6)
832#define ADC_LEFTBITSHIFT_7 (LL_ADC_LEFT_BIT_SHIFT_7)
833#define ADC_LEFTBITSHIFT_8 (LL_ADC_LEFT_BIT_SHIFT_8)
834#define ADC_LEFTBITSHIFT_9 (LL_ADC_LEFT_BIT_SHIFT_9)
835#define ADC_LEFTBITSHIFT_10 (LL_ADC_LEFT_BIT_SHIFT_10)
836#define ADC_LEFTBITSHIFT_11 (LL_ADC_LEFT_BIT_SHIFT_11)
837#define ADC_LEFTBITSHIFT_12 (LL_ADC_LEFT_BIT_SHIFT_12)
838#define ADC_LEFTBITSHIFT_13 (LL_ADC_LEFT_BIT_SHIFT_13)
839#define ADC_LEFTBITSHIFT_14 (LL_ADC_LEFT_BIT_SHIFT_14)
840#define ADC_LEFTBITSHIFT_15 (LL_ADC_LEFT_BIT_SHIFT_15)
848#define ADC_TRIGGEREDMODE_SINGLE_TRIGGER (LL_ADC_OVS_REG_CONT)
849#define ADC_TRIGGEREDMODE_MULTI_TRIGGER (LL_ADC_OVS_REG_DISCONT)
857#define ADC_REGOVERSAMPLING_CONTINUED_MODE (LL_ADC_OVS_GRP_REGULAR_CONTINUED)
858#define ADC_REGOVERSAMPLING_RESUMED_MODE (LL_ADC_OVS_GRP_REGULAR_RESUMED)
867#define ADC_EOSMP_EVENT (ADC_FLAG_EOSMP)
868#define ADC_AWD1_EVENT (ADC_FLAG_AWD1)
869#define ADC_AWD2_EVENT (ADC_FLAG_AWD2)
870#define ADC_AWD3_EVENT (ADC_FLAG_AWD3)
871#define ADC_OVR_EVENT (ADC_FLAG_OVR)
872#define ADC_JQOVF_EVENT (ADC_FLAG_JQOVF)
876#define ADC_AWD_EVENT ADC_AWD1_EVENT
881#define ADC_IT_RDY ADC_IER_ADRDYIE
882#define ADC_IT_EOSMP ADC_IER_EOSMPIE
883#define ADC_IT_EOC ADC_IER_EOCIE
884#define ADC_IT_EOS ADC_IER_EOSIE
885#define ADC_IT_OVR ADC_IER_OVRIE
886#define ADC_IT_JEOC ADC_IER_JEOCIE
887#define ADC_IT_JEOS ADC_IER_JEOSIE
888#define ADC_IT_AWD1 ADC_IER_AWD1IE
889#define ADC_IT_AWD2 ADC_IER_AWD2IE
890#define ADC_IT_AWD3 ADC_IER_AWD3IE
891#define ADC_IT_JQOVF ADC_IER_JQOVFIE
893#define ADC_IT_AWD ADC_IT_AWD1
902#define ADC_FLAG_RDY ADC_ISR_ADRDY
903#define ADC_FLAG_EOSMP ADC_ISR_EOSMP
904#define ADC_FLAG_EOC ADC_ISR_EOC
905#define ADC_FLAG_EOS ADC_ISR_EOS
906#define ADC_FLAG_OVR ADC_ISR_OVR
907#define ADC_FLAG_JEOC ADC_ISR_JEOC
908#define ADC_FLAG_JEOS ADC_ISR_JEOS
909#define ADC_FLAG_AWD1 ADC_ISR_AWD1
910#define ADC_FLAG_AWD2 ADC_ISR_AWD2
911#define ADC_FLAG_AWD3 ADC_ISR_AWD3
912#define ADC_FLAG_JQOVF ADC_ISR_JQOVF
913#define ADC_FLAG_LDORDY ADC_ISR_LDORDY
935#define IS_ADC_CONVERSIONDATAMGT(DATA) \
936 ((((DATA) == ADC_CONVERSIONDATA_DR)) || \
937 (((DATA) == ADC_CONVERSIONDATA_DFSDM)) || \
938 (((DATA) == ADC_CONVERSIONDATA_DMA_ONESHOT)) || \
939 (((DATA) == ADC_CONVERSIONDATA_DMA_CIRCULAR)))
946#define ADC_GET_RESOLUTION(__HANDLE__) \
947 (LL_ADC_GetResolution((__HANDLE__)->Instance))
954#define ADC_CLEAR_ERRORCODE(__HANDLE__) ((__HANDLE__)->ErrorCode = HAL_ADC_ERROR_NONE)
961#define ADC_IS_ENABLE(__HANDLE__) \
962 (( ((((__HANDLE__)->Instance->CR) & (ADC_CR_ADEN | ADC_CR_ADDIS)) == ADC_CR_ADEN) && \
963 ((((__HANDLE__)->Instance->ISR) & ADC_FLAG_RDY) == ADC_FLAG_RDY) \
971#define ADC_IS_CONVERSION_ONGOING_REGULAR(__HANDLE__) \
972 (LL_ADC_REG_IsConversionOngoing((__HANDLE__)->Instance))
980#define ADC_IS_SYNCHRONOUS_CLOCK_MODE(__HANDLE__) \
981 (((((__HANDLE__)->Instance) == ADC1) || (((__HANDLE__)->Instance) == ADC2))? \
982 ((ADC12_COMMON->CCR & ADC_CCR_CKMODE) != 0UL) \
983 :((((ADC3_COMMON)->CCR) & ADC_CCR_CKMODE) != 0UL))
985#define ADC_IS_SYNCHRONOUS_CLOCK_MODE(__HANDLE__) ((ADC12_COMMON->CCR & ADC_CCR_CKMODE) != 0UL)
996#define ADC_STATE_CLR_SET MODIFY_REG
1004#define IS_ADC_RANGE(__RESOLUTION__, __ADC_VALUE__) \
1005 ((__ADC_VALUE__) <= __LL_ADC_DIGITAL_SCALE(__RESOLUTION__))
1007#if defined(ADC_VER_V5_V90)
1014#define IS_ADC3_RANGE(__RESOLUTION__, __ADC_VALUE__) \
1015 ((__ADC_VALUE__) <= __LL_ADC3_DIGITAL_SCALE(__RESOLUTION__))
1022#define IS_ADC_REGULAR_NB_CONV(__LENGTH__) (((__LENGTH__) >= (1UL)) && ((__LENGTH__) <= (16UL)))
1030#define IS_ADC_REGULAR_DISCONT_NUMBER(NUMBER) (((NUMBER) >= (1UL)) && ((NUMBER) <= (8UL)))
1038#define IS_ADC_CLOCKPRESCALER(__ADC_CLOCK__) (((__ADC_CLOCK__) == ADC_CLOCK_SYNC_PCLK_DIV1) || \
1039 ((__ADC_CLOCK__) == ADC_CLOCK_SYNC_PCLK_DIV2) || \
1040 ((__ADC_CLOCK__) == ADC_CLOCK_SYNC_PCLK_DIV4) || \
1041 ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV1) || \
1042 ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV2) || \
1043 ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV4) || \
1044 ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV6) || \
1045 ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV8) || \
1046 ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV10) || \
1047 ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV12) || \
1048 ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV16) || \
1049 ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV32) || \
1050 ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV64) || \
1051 ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV128) || \
1052 ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV256) )
1059#if defined(ADC_VER_V5_V90)
1060#define IS_ADC_RESOLUTION(__RESOLUTION__) (((__RESOLUTION__) == ADC_RESOLUTION_16B) || \
1061 ((__RESOLUTION__) == ADC_RESOLUTION_14B) || \
1062 ((__RESOLUTION__) == ADC_RESOLUTION_12B) || \
1063 ((__RESOLUTION__) == ADC_RESOLUTION_10B) || \
1064 ((__RESOLUTION__) == ADC_RESOLUTION_8B) || \
1065 ((__RESOLUTION__) == ADC_RESOLUTION_6B) )
1066#elif defined (ADC_VER_V5_X)
1067#define IS_ADC_RESOLUTION(__RESOLUTION__) (((__RESOLUTION__) == ADC_RESOLUTION_16B) || \
1068 ((__RESOLUTION__) == ADC_RESOLUTION_14B) || \
1069 ((__RESOLUTION__) == ADC_RESOLUTION_14B_OPT) || \
1070 ((__RESOLUTION__) == ADC_RESOLUTION_12B) || \
1071 ((__RESOLUTION__) == ADC_RESOLUTION_12B_OPT) || \
1072 ((__RESOLUTION__) == ADC_RESOLUTION_10B) || \
1073 ((__RESOLUTION__) == ADC_RESOLUTION_8B) )
1075#define IS_ADC_RESOLUTION(__RESOLUTION__) (((__RESOLUTION__) == ADC_RESOLUTION_16B) || \
1076 ((__RESOLUTION__) == ADC_RESOLUTION_14B) || \
1077 ((__RESOLUTION__) == ADC_RESOLUTION_12B) || \
1078 ((__RESOLUTION__) == ADC_RESOLUTION_10B) || \
1079 ((__RESOLUTION__) == ADC_RESOLUTION_8B) )
1087#define IS_ADC_RESOLUTION_8_BITS(__RESOLUTION__) (((__RESOLUTION__) == ADC_RESOLUTION_8B))
1089#if defined(ADC_VER_V5_V90)
1095#define IS_ADC3_DATA_ALIGN(__ALIGN__) (((__ALIGN__) == ADC3_DATAALIGN_RIGHT) || \
1096 ((__ALIGN__) == ADC3_DATAALIGN_LEFT) )
1103#define IS_ADC3_SAMPLINGMODE(__SAMPLINGMODE__) (((__SAMPLINGMODE__) == ADC_SAMPLING_MODE_NORMAL) || \
1104 ((__SAMPLINGMODE__) == ADC_SAMPLING_MODE_BULB) || \
1105 ((__SAMPLINGMODE__) == ADC_SAMPLING_MODE_TRIGGER_CONTROLED) )
1114#define IS_ADC_SCAN_MODE(__SCAN_MODE__) (((__SCAN_MODE__) == ADC_SCAN_DISABLE) || \
1115 ((__SCAN_MODE__) == ADC_SCAN_ENABLE) )
1122#define IS_ADC_EXTTRIG_EDGE(__EDGE__) (((__EDGE__) == ADC_EXTERNALTRIGCONVEDGE_NONE) || \
1123 ((__EDGE__) == ADC_EXTERNALTRIGCONVEDGE_RISING) || \
1124 ((__EDGE__) == ADC_EXTERNALTRIGCONVEDGE_FALLING) || \
1125 ((__EDGE__) == ADC_EXTERNALTRIGCONVEDGE_RISINGFALLING) )
1132#if defined(ADC_VER_V5_V90)
1133#define IS_ADC_EXTTRIG(__REGTRIG__) (((__REGTRIG__) == ADC_EXTERNALTRIG_T1_CC1) || \
1134 ((__REGTRIG__) == ADC_EXTERNALTRIG_T1_CC2) || \
1135 ((__REGTRIG__) == ADC_EXTERNALTRIG_T1_CC3) || \
1136 ((__REGTRIG__) == ADC_EXTERNALTRIG_T2_CC2) || \
1137 ((__REGTRIG__) == ADC_EXTERNALTRIG_T3_TRGO) || \
1138 ((__REGTRIG__) == ADC_EXTERNALTRIG_T4_CC4) || \
1139 ((__REGTRIG__) == ADC_EXTERNALTRIG_EXT_IT11) || \
1140 ((__REGTRIG__) == ADC_EXTERNALTRIG_T8_TRGO) || \
1141 ((__REGTRIG__) == ADC_EXTERNALTRIG_T8_TRGO2) || \
1142 ((__REGTRIG__) == ADC_EXTERNALTRIG_T1_TRGO) || \
1143 ((__REGTRIG__) == ADC_EXTERNALTRIG_T1_TRGO2) || \
1144 ((__REGTRIG__) == ADC_EXTERNALTRIG_T2_TRGO) || \
1145 ((__REGTRIG__) == ADC_EXTERNALTRIG_T4_TRGO) || \
1146 ((__REGTRIG__) == ADC_EXTERNALTRIG_T6_TRGO) || \
1147 ((__REGTRIG__) == ADC_EXTERNALTRIG_T15_TRGO) || \
1148 ((__REGTRIG__) == ADC_EXTERNALTRIG_T3_CC4) || \
1149 ((__REGTRIG__) == ADC_EXTERNALTRIG_HR1_ADCTRG1) || \
1150 ((__REGTRIG__) == ADC_EXTERNALTRIG_HR1_ADCTRG3) || \
1151 ((__REGTRIG__) == ADC_EXTERNALTRIG_LPTIM1_OUT) || \
1152 ((__REGTRIG__) == ADC_EXTERNALTRIG_LPTIM2_OUT) || \
1153 ((__REGTRIG__) == ADC_EXTERNALTRIG_LPTIM3_OUT) || \
1154 ((__REGTRIG__) == ADC_EXTERNALTRIG_T23_TRGO) || \
1155 ((__REGTRIG__) == ADC_EXTERNALTRIG_T24_TRGO) || \
1156 ((__REGTRIG__) == ADC_SOFTWARE_START) )
1158#define IS_ADC_EXTTRIG(__REGTRIG__) (((__REGTRIG__) == ADC_EXTERNALTRIG_T1_CC1) || \
1159 ((__REGTRIG__) == ADC_EXTERNALTRIG_T1_CC2) || \
1160 ((__REGTRIG__) == ADC_EXTERNALTRIG_T1_CC3) || \
1161 ((__REGTRIG__) == ADC_EXTERNALTRIG_T2_CC2) || \
1162 ((__REGTRIG__) == ADC_EXTERNALTRIG_T3_TRGO) || \
1163 ((__REGTRIG__) == ADC_EXTERNALTRIG_T4_CC4) || \
1164 ((__REGTRIG__) == ADC_EXTERNALTRIG_EXT_IT11) || \
1165 ((__REGTRIG__) == ADC_EXTERNALTRIG_T8_TRGO) || \
1166 ((__REGTRIG__) == ADC_EXTERNALTRIG_T8_TRGO2) || \
1167 ((__REGTRIG__) == ADC_EXTERNALTRIG_T1_TRGO) || \
1168 ((__REGTRIG__) == ADC_EXTERNALTRIG_T1_TRGO2) || \
1169 ((__REGTRIG__) == ADC_EXTERNALTRIG_T2_TRGO) || \
1170 ((__REGTRIG__) == ADC_EXTERNALTRIG_T4_TRGO) || \
1171 ((__REGTRIG__) == ADC_EXTERNALTRIG_T6_TRGO) || \
1172 ((__REGTRIG__) == ADC_EXTERNALTRIG_T15_TRGO) || \
1173 ((__REGTRIG__) == ADC_EXTERNALTRIG_T3_CC4) || \
1174 ((__REGTRIG__) == ADC_EXTERNALTRIG_HR1_ADCTRG1) || \
1175 ((__REGTRIG__) == ADC_EXTERNALTRIG_HR1_ADCTRG3) || \
1176 ((__REGTRIG__) == ADC_EXTERNALTRIG_LPTIM1_OUT) || \
1177 ((__REGTRIG__) == ADC_EXTERNALTRIG_LPTIM2_OUT) || \
1178 ((__REGTRIG__) == ADC_EXTERNALTRIG_LPTIM3_OUT) || \
1179 ((__REGTRIG__) == ADC_SOFTWARE_START) )
1188#define IS_ADC_EOC_SELECTION(__EOC_SELECTION__) (((__EOC_SELECTION__) == ADC_EOC_SINGLE_CONV) || \
1189 ((__EOC_SELECTION__) == ADC_EOC_SEQ_CONV) )
1196#define IS_ADC_OVERRUN(__OVR__) (((__OVR__) == ADC_OVR_DATA_PRESERVED) || \
1197 ((__OVR__) == ADC_OVR_DATA_OVERWRITTEN) )
1204#define IS_ADC_SAMPLE_TIME(__TIME__) (((__TIME__) == ADC_SAMPLETIME_1CYCLE_5) || \
1205 ((__TIME__) == ADC_SAMPLETIME_2CYCLES_5) || \
1206 ((__TIME__) == ADC_SAMPLETIME_8CYCLES_5) || \
1207 ((__TIME__) == ADC_SAMPLETIME_16CYCLES_5) || \
1208 ((__TIME__) == ADC_SAMPLETIME_32CYCLES_5) || \
1209 ((__TIME__) == ADC_SAMPLETIME_64CYCLES_5) || \
1210 ((__TIME__) == ADC_SAMPLETIME_387CYCLES_5) || \
1211 ((__TIME__) == ADC_SAMPLETIME_810CYCLES_5) )
1218#define IS_ADC_REGULAR_RANK(__CHANNEL__) (((__CHANNEL__) == ADC_REGULAR_RANK_1 ) || \
1219 ((__CHANNEL__) == ADC_REGULAR_RANK_2 ) || \
1220 ((__CHANNEL__) == ADC_REGULAR_RANK_3 ) || \
1221 ((__CHANNEL__) == ADC_REGULAR_RANK_4 ) || \
1222 ((__CHANNEL__) == ADC_REGULAR_RANK_5 ) || \
1223 ((__CHANNEL__) == ADC_REGULAR_RANK_6 ) || \
1224 ((__CHANNEL__) == ADC_REGULAR_RANK_7 ) || \
1225 ((__CHANNEL__) == ADC_REGULAR_RANK_8 ) || \
1226 ((__CHANNEL__) == ADC_REGULAR_RANK_9 ) || \
1227 ((__CHANNEL__) == ADC_REGULAR_RANK_10) || \
1228 ((__CHANNEL__) == ADC_REGULAR_RANK_11) || \
1229 ((__CHANNEL__) == ADC_REGULAR_RANK_12) || \
1230 ((__CHANNEL__) == ADC_REGULAR_RANK_13) || \
1231 ((__CHANNEL__) == ADC_REGULAR_RANK_14) || \
1232 ((__CHANNEL__) == ADC_REGULAR_RANK_15) || \
1233 ((__CHANNEL__) == ADC_REGULAR_RANK_16) )
1254#define ADC_STOP_CONVERSION_TIMEOUT ( 5UL)
1259#define ADC_TEMPSENSOR_DELAY_US (LL_ADC_DELAY_TEMPSENSOR_STAB_US)
1264#define ADC_STAB_DELAY_US (10UL)
1286#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1)
1287#define __HAL_ADC_RESET_HANDLE_STATE(__HANDLE__) \
1289 (__HANDLE__)->State = HAL_ADC_STATE_RESET; \
1290 (__HANDLE__)->MspInitCallback = NULL; \
1291 (__HANDLE__)->MspDeInitCallback = NULL; \
1294#define __HAL_ADC_RESET_HANDLE_STATE(__HANDLE__) \
1295 ((__HANDLE__)->State = HAL_ADC_STATE_RESET)
1316#define __HAL_ADC_ENABLE_IT(__HANDLE__, __INTERRUPT__) \
1317 (((__HANDLE__)->Instance->IER) |= (__INTERRUPT__))
1337#define __HAL_ADC_DISABLE_IT(__HANDLE__, __INTERRUPT__) \
1338 (((__HANDLE__)->Instance->IER) &= ~(__INTERRUPT__))
1357#define __HAL_ADC_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) \
1358 (((__HANDLE__)->Instance->IER & (__INTERRUPT__)) == (__INTERRUPT__))
1379#define __HAL_ADC_GET_FLAG(__HANDLE__, __FLAG__) \
1380 ((((__HANDLE__)->Instance->ISR) & (__FLAG__)) == (__FLAG__))
1401#define __HAL_ADC_CLEAR_FLAG(__HANDLE__, __FLAG__) \
1402 (((__HANDLE__)->Instance->ISR) = (__FLAG__))
1453#define __HAL_ADC_CHANNEL_TO_DECIMAL_NB(__CHANNEL__) \
1454 __LL_ADC_CHANNEL_TO_DECIMAL_NB((__CHANNEL__))
1497#define __HAL_ADC_DECIMAL_NB_TO_CHANNEL(__DECIMAL_NB__) \
1498 __LL_ADC_DECIMAL_NB_TO_CHANNEL((__DECIMAL_NB__))
1550#define __HAL_ADC_IS_CHANNEL_INTERNAL(__CHANNEL__) \
1551 __LL_ADC_IS_CHANNEL_INTERNAL((__CHANNEL__))
1617#define __HAL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(__CHANNEL__) \
1618 __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL((__CHANNEL__))
1646#define __HAL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \
1647 __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE((__ADC_INSTANCE__), (__CHANNEL__))
1662#define __HAL_ADC_MULTI_CONV_DATA_MASTER_SLAVE(__ADC_MULTI_MASTER_SLAVE__, __ADC_MULTI_CONV_DATA__) \
1663 __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE((__ADC_MULTI_MASTER_SLAVE__), (__ADC_MULTI_CONV_DATA__))
1675#define __HAL_ADC_COMMON_INSTANCE(__ADCx__) \
1676 __LL_ADC_COMMON_INSTANCE((__ADCx__))
1695#define __HAL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__ADCXY_COMMON__) \
1696 __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE((__ADCXY_COMMON__))
1712#define __HAL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__) \
1713 __LL_ADC_DIGITAL_SCALE((__ADC_RESOLUTION__))
1735#define __HAL_ADC_CONVERT_DATA_RESOLUTION(__DATA__,\
1736 __ADC_RESOLUTION_CURRENT__,\
1737 __ADC_RESOLUTION_TARGET__) \
1738 __LL_ADC_CONVERT_DATA_RESOLUTION((__DATA__),\
1739 (__ADC_RESOLUTION_CURRENT__),\
1740 (__ADC_RESOLUTION_TARGET__))
1759#define __HAL_ADC_CALC_DATA_TO_VOLTAGE(__VREFANALOG_VOLTAGE__,\
1761 __ADC_RESOLUTION__) \
1762 __LL_ADC_CALC_DATA_TO_VOLTAGE((__VREFANALOG_VOLTAGE__),\
1764 (__ADC_RESOLUTION__))
1792#define __HAL_ADC_CALC_VREFANALOG_VOLTAGE(__VREFINT_ADC_DATA__,\
1793 __ADC_RESOLUTION__) \
1794 __LL_ADC_CALC_VREFANALOG_VOLTAGE((__VREFINT_ADC_DATA__),\
1795 (__ADC_RESOLUTION__))
1843#define __HAL_ADC_CALC_TEMPERATURE(__VREFANALOG_VOLTAGE__,\
1844 __TEMPSENSOR_ADC_DATA__,\
1845 __ADC_RESOLUTION__) \
1846 __LL_ADC_CALC_TEMPERATURE((__VREFANALOG_VOLTAGE__),\
1847 (__TEMPSENSOR_ADC_DATA__),\
1848 (__ADC_RESOLUTION__))
1895#define __HAL_ADC_CALC_TEMPERATURE_TYP_PARAMS(__TEMPSENSOR_TYP_AVGSLOPE__,\
1896 __TEMPSENSOR_TYP_CALX_V__,\
1897 __TEMPSENSOR_CALX_TEMP__,\
1898 __VREFANALOG_VOLTAGE__,\
1899 __TEMPSENSOR_ADC_DATA__,\
1900 __ADC_RESOLUTION__) \
1901 __LL_ADC_CALC_TEMPERATURE_TYP_PARAMS((__TEMPSENSOR_TYP_AVGSLOPE__),\
1902 (__TEMPSENSOR_TYP_CALX_V__),\
1903 (__TEMPSENSOR_CALX_TEMP__),\
1904 (__VREFANALOG_VOLTAGE__),\
1905 (__TEMPSENSOR_ADC_DATA__),\
1906 (__ADC_RESOLUTION__))
1935#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1)
#define __IO
Defines 'read / write' permissions.
HAL_StatusTypeDef HAL_ADC_DeInit(ADC_HandleTypeDef *hadc)
HAL_StatusTypeDef HAL_ADC_Init(ADC_HandleTypeDef *hadc)
void HAL_ADC_MspDeInit(ADC_HandleTypeDef *hadc)
ADC MSP De-Initialization This function freeze the hardware resources used in this example.
void HAL_ADC_MspInit(ADC_HandleTypeDef *hadc)
ADC MSP Initialization This function configures the hardware resources used in this example.
HAL_StatusTypeDef HAL_ADC_PollForEvent(ADC_HandleTypeDef *hadc, uint32_t EventType, uint32_t Timeout)
HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef *hadc)
HAL_StatusTypeDef HAL_ADC_Stop(ADC_HandleTypeDef *hadc)
void HAL_ADC_IRQHandler(ADC_HandleTypeDef *hadc)
uint32_t HAL_ADC_GetValue(const ADC_HandleTypeDef *hadc)
HAL_StatusTypeDef HAL_ADC_Start_DMA(ADC_HandleTypeDef *hadc, uint32_t *pData, uint32_t Length)
void HAL_ADC_LevelOutOfWindowCallback(ADC_HandleTypeDef *hadc)
void HAL_ADC_ConvHalfCpltCallback(ADC_HandleTypeDef *hadc)
HAL_StatusTypeDef HAL_ADC_PollForConversion(ADC_HandleTypeDef *hadc, uint32_t Timeout)
void HAL_ADC_ErrorCallback(ADC_HandleTypeDef *hadc)
HAL_StatusTypeDef HAL_ADC_Stop_DMA(ADC_HandleTypeDef *hadc)
HAL_StatusTypeDef HAL_ADC_Stop_IT(ADC_HandleTypeDef *hadc)
HAL_StatusTypeDef HAL_ADC_Start_IT(ADC_HandleTypeDef *hadc)
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc)
HAL_StatusTypeDef HAL_ADC_ConfigChannel(ADC_HandleTypeDef *hadc, ADC_ChannelConfTypeDef *sConfig)
HAL_StatusTypeDef HAL_ADC_AnalogWDGConfig(ADC_HandleTypeDef *hadc, ADC_AnalogWDGConfTypeDef *AnalogWDGConfig)
uint32_t HAL_ADC_GetError(const ADC_HandleTypeDef *hadc)
uint32_t HAL_ADC_GetState(const ADC_HandleTypeDef *hadc)
HAL_StatusTypeDef ADC_Enable(ADC_HandleTypeDef *hadc)
void ADC_DMAConvCplt(DMA_HandleTypeDef *hdma)
void ADC_DMAHalfConvCplt(DMA_HandleTypeDef *hdma)
HAL_StatusTypeDef ADC_ConversionStop(ADC_HandleTypeDef *hadc, uint32_t ConversionGroup)
void ADC_ConfigureBoostMode(ADC_HandleTypeDef *hadc)
void ADC_DMAError(DMA_HandleTypeDef *hdma)
HAL_StatusTypeDef ADC_Disable(ADC_HandleTypeDef *hadc)
struct __DMA_HandleTypeDef DMA_HandleTypeDef
DMA handle Structure definition.
Header file of ADC HAL extended module.
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef
HAL Status structures definition.
HAL_LockTypeDef
HAL Lock structures definition.
Header file of ADC LL module.
Structure definition of ADC analog watchdog.
uint32_t WatchdogNumber
Select which ADC analog watchdog is monitoring the selected channel.
FunctionalState ITMode
Specify whether the analog watchdog is configured in interrupt or polling mode.
uint32_t LowThreshold
Configures the ADC analog watchdog Low threshold value.
uint32_t HighThreshold
Configure the ADC analog watchdog High threshold value.
uint32_t Channel
Select which ADC channel to monitor by analog watchdog.
uint32_t WatchdogMode
Configure the ADC analog watchdog mode: single/all/none channels.
Structure definition of ADC channel for regular group.
uint32_t Rank
Specify the rank in the regular group sequencer.
uint32_t SingleDiff
Select single-ended or differential input.
uint32_t Offset
Define the offset to be subtracted from the raw converted data.
FunctionalState OffsetRightShift
Define the Right-shift data after Offset correction.
uint32_t Channel
Specify the channel to configure into ADC regular group.
FunctionalState OffsetSignedSaturation
Specify whether the Signed saturation feature is used or not.
uint32_t SamplingTime
Sampling time value to be set for the selected channel.
uint32_t OffsetNumber
Select the offset number This parameter can be a value of ADC instance - Offset number Caution: Only ...
ADC handle Structure definition.
ADC_InjectionConfigTypeDef InjectionConfig
ADC injected channel configuration build-up structure.
DMA_HandleTypeDef * DMA_Handle
Pointer DMA Handler.
ADC_TypeDef * Instance
Register base address.
ADC_InitTypeDef Init
ADC initialization parameters and regular conversions setting.
__IO uint32_t ErrorCode
ADC Error code.
HAL_LockTypeDef Lock
ADC locking object.
__IO uint32_t State
ADC communication state (bitmap of ADC states).
Structure definition of ADC instance and ADC group regular.
FunctionalState ContinuousConvMode
Specify whether the conversion is performed in single mode (one conversion) or continuous mode for AD...
uint32_t ExternalTrigConv
Select the external event source used to trigger ADC group regular conversion start.
uint32_t ScanConvMode
Configure the sequencer of ADC groups regular and injected.
uint32_t ConversionDataManagement
Specifies whether the Data conversion data is managed: using the DMA (oneshot or circular),...
uint32_t NbrOfDiscConversion
Specifies the number of discontinuous conversions in which the main sequence of ADC group regular (pa...
uint32_t Overrun
Select the behavior in case of overrun: data overwritten or preserved (default).
FunctionalState OversamplingMode
Specify whether the oversampling feature is enabled or disabled.
uint32_t ClockPrescaler
Select ADC clock source (synchronous clock derived from APB clock or asynchronous clock derived from ...
uint32_t LeftBitShift
Configures the left shifting applied to the final result with or without oversampling.
uint32_t NbrOfConversion
Specify the number of ranks that will be converted within the regular group sequencer.
uint32_t Resolution
Configure the ADC resolution.
uint32_t EOCSelection
Specify which EOC (End Of Conversion) flag is used for conversion by polling and interruption: end of...
uint32_t ExternalTrigConvEdge
Select the external event edge used to trigger ADC group regular conversion start.
ADC_OversamplingTypeDef Oversampling
Specify the Oversampling parameters.
FunctionalState DiscontinuousConvMode
Specify whether the conversions sequence of ADC group regular is performed in Complete-sequence/Disco...
FunctionalState LowPowerAutoWait
Select the dynamic low power Auto Delay: new conversion start only when the previous conversion (for ...
ADC group injected contexts queue configuration.
uint32_t ChannelCount
Number of channels in the injected sequence.
uint32_t ContextQueue
Injected channel configuration context: build-up over each HAL_ADCEx_InjectedConfigChannel() call to ...
ADC group regular oversampling structure definition.
uint32_t Ratio
Configures the oversampling ratio.
uint32_t RightBitShift
Configures the division coefficient for the Oversampler.
uint32_t OversamplingStopReset
Selects the regular oversampling mode.
uint32_t TriggeredMode
Selects the regular triggered oversampling mode.
Analog to Digital Converter.