21 #ifndef STM32L4xx_HAL_ADC_EX_H 22 #define STM32L4xx_HAL_ADC_EX_H 174 #if defined(ADC_MULTIMODE_SUPPORT) 211 #define ADC_INJECTED_SOFTWARE_START (LL_ADC_INJ_TRIG_SOFTWARE) 212 #define ADC_EXTERNALTRIGINJEC_T1_TRGO (LL_ADC_INJ_TRIG_EXT_TIM1_TRGO) 213 #define ADC_EXTERNALTRIGINJEC_T1_TRGO2 (LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2) 214 #define ADC_EXTERNALTRIGINJEC_T1_CC4 (LL_ADC_INJ_TRIG_EXT_TIM1_CH4) 215 #define ADC_EXTERNALTRIGINJEC_T2_TRGO (LL_ADC_INJ_TRIG_EXT_TIM2_TRGO) 216 #define ADC_EXTERNALTRIGINJEC_T2_CC1 (LL_ADC_INJ_TRIG_EXT_TIM2_CH1) 217 #define ADC_EXTERNALTRIGINJEC_T3_TRGO (LL_ADC_INJ_TRIG_EXT_TIM3_TRGO) 218 #define ADC_EXTERNALTRIGINJEC_T3_CC1 (LL_ADC_INJ_TRIG_EXT_TIM3_CH1) 219 #define ADC_EXTERNALTRIGINJEC_T3_CC3 (LL_ADC_INJ_TRIG_EXT_TIM3_CH3) 220 #define ADC_EXTERNALTRIGINJEC_T3_CC4 (LL_ADC_INJ_TRIG_EXT_TIM3_CH4) 221 #define ADC_EXTERNALTRIGINJEC_T4_TRGO (LL_ADC_INJ_TRIG_EXT_TIM4_TRGO) 222 #define ADC_EXTERNALTRIGINJEC_T6_TRGO (LL_ADC_INJ_TRIG_EXT_TIM6_TRGO) 223 #define ADC_EXTERNALTRIGINJEC_T8_CC4 (LL_ADC_INJ_TRIG_EXT_TIM8_CH4) 224 #define ADC_EXTERNALTRIGINJEC_T8_TRGO (LL_ADC_INJ_TRIG_EXT_TIM8_TRGO) 225 #define ADC_EXTERNALTRIGINJEC_T8_TRGO2 (LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2) 226 #define ADC_EXTERNALTRIGINJEC_T15_TRGO (LL_ADC_INJ_TRIG_EXT_TIM15_TRGO) 227 #define ADC_EXTERNALTRIGINJEC_EXT_IT15 (LL_ADC_INJ_TRIG_EXT_EXTI_LINE15) 235 #define ADC_EXTERNALTRIGINJECCONV_EDGE_NONE (0x00000000UL) 236 #define ADC_EXTERNALTRIGINJECCONV_EDGE_RISING (ADC_JSQR_JEXTEN_0) 237 #define ADC_EXTERNALTRIGINJECCONV_EDGE_FALLING (ADC_JSQR_JEXTEN_1) 238 #define ADC_EXTERNALTRIGINJECCONV_EDGE_RISINGFALLING (ADC_JSQR_JEXTEN) 246 #define ADC_SINGLE_ENDED (LL_ADC_SINGLE_ENDED) 247 #define ADC_DIFFERENTIAL_ENDED (LL_ADC_DIFFERENTIAL_ENDED) 255 #define ADC_OFFSET_NONE (ADC_OFFSET_4 + 1U) 256 #define ADC_OFFSET_1 (LL_ADC_OFFSET_1) 257 #define ADC_OFFSET_2 (LL_ADC_OFFSET_2) 258 #define ADC_OFFSET_3 (LL_ADC_OFFSET_3) 259 #define ADC_OFFSET_4 (LL_ADC_OFFSET_4) 267 #define ADC_INJECTED_RANK_1 (LL_ADC_INJ_RANK_1) 268 #define ADC_INJECTED_RANK_2 (LL_ADC_INJ_RANK_2) 269 #define ADC_INJECTED_RANK_3 (LL_ADC_INJ_RANK_3) 270 #define ADC_INJECTED_RANK_4 (LL_ADC_INJ_RANK_4) 275 #if defined(ADC_MULTIMODE_SUPPORT) 279 #define ADC_MODE_INDEPENDENT (LL_ADC_MULTI_INDEPENDENT) 280 #define ADC_DUALMODE_REGSIMULT (LL_ADC_MULTI_DUAL_REG_SIMULT) 281 #define ADC_DUALMODE_INTERL (LL_ADC_MULTI_DUAL_REG_INTERL) 282 #define ADC_DUALMODE_INJECSIMULT (LL_ADC_MULTI_DUAL_INJ_SIMULT) 283 #define ADC_DUALMODE_ALTERTRIG (LL_ADC_MULTI_DUAL_INJ_ALTERN) 284 #define ADC_DUALMODE_REGSIMULT_INJECSIMULT (LL_ADC_MULTI_DUAL_REG_SIM_INJ_SIM) 285 #define ADC_DUALMODE_REGSIMULT_ALTERTRIG (LL_ADC_MULTI_DUAL_REG_SIM_INJ_ALT) 286 #define ADC_DUALMODE_REGINTERL_INJECSIMULT (LL_ADC_MULTI_DUAL_REG_INT_INJ_SIM) 291 #define ADC_DMAACCESSMODE_DISABLED (0x00000000UL) 292 #define ADC_DMAACCESSMODE_12_10_BITS (ADC_CCR_MDMA_1) 293 #define ADC_DMAACCESSMODE_8_6_BITS (ADC_CCR_MDMA) 301 #define ADC_TWOSAMPLINGDELAY_1CYCLE (LL_ADC_MULTI_TWOSMP_DELAY_1CYCLE) 302 #define ADC_TWOSAMPLINGDELAY_2CYCLES (LL_ADC_MULTI_TWOSMP_DELAY_2CYCLES) 303 #define ADC_TWOSAMPLINGDELAY_3CYCLES (LL_ADC_MULTI_TWOSMP_DELAY_3CYCLES) 304 #define ADC_TWOSAMPLINGDELAY_4CYCLES (LL_ADC_MULTI_TWOSMP_DELAY_4CYCLES) 305 #define ADC_TWOSAMPLINGDELAY_5CYCLES (LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES) 306 #define ADC_TWOSAMPLINGDELAY_6CYCLES (LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES) 307 #define ADC_TWOSAMPLINGDELAY_7CYCLES (LL_ADC_MULTI_TWOSMP_DELAY_7CYCLES) 308 #define ADC_TWOSAMPLINGDELAY_8CYCLES (LL_ADC_MULTI_TWOSMP_DELAY_8CYCLES) 309 #define ADC_TWOSAMPLINGDELAY_9CYCLES (LL_ADC_MULTI_TWOSMP_DELAY_9CYCLES) 310 #define ADC_TWOSAMPLINGDELAY_10CYCLES (LL_ADC_MULTI_TWOSMP_DELAY_10CYCLES) 311 #define ADC_TWOSAMPLINGDELAY_11CYCLES (LL_ADC_MULTI_TWOSMP_DELAY_11CYCLES) 312 #define ADC_TWOSAMPLINGDELAY_12CYCLES (LL_ADC_MULTI_TWOSMP_DELAY_12CYCLES) 325 #define ADC_REGULAR_GROUP (LL_ADC_GROUP_REGULAR) 326 #define ADC_INJECTED_GROUP (LL_ADC_GROUP_INJECTED) 327 #define ADC_REGULAR_INJECTED_GROUP (LL_ADC_GROUP_REGULAR_INJECTED) 335 #if defined(ADC_CFGR_DFSDMCFG) &&defined(DFSDM1_Channel0) 336 #define ADC_CFGR_FIELDS (ADC_CFGR_AWD1CH | ADC_CFGR_JAUTO | ADC_CFGR_JAWD1EN |\ 337 ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL | ADC_CFGR_JQM |\ 338 ADC_CFGR_JDISCEN | ADC_CFGR_DISCNUM | ADC_CFGR_DISCEN |\ 339 ADC_CFGR_AUTDLY | ADC_CFGR_CONT | ADC_CFGR_OVRMOD |\ 340 ADC_CFGR_EXTEN | ADC_CFGR_EXTSEL | ADC_CFGR_ALIGN |\ 341 ADC_CFGR_RES | ADC_CFGR_DFSDMCFG | ADC_CFGR_DMACFG | ADC_CFGR_DMAEN) 343 #define ADC_CFGR_FIELDS (ADC_CFGR_AWD1CH | ADC_CFGR_JAUTO | ADC_CFGR_JAWD1EN |\ 344 ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL | ADC_CFGR_JQM |\ 345 ADC_CFGR_JDISCEN | ADC_CFGR_DISCNUM | ADC_CFGR_DISCEN |\ 346 ADC_CFGR_AUTDLY | ADC_CFGR_CONT | ADC_CFGR_OVRMOD |\ 347 ADC_CFGR_EXTEN | ADC_CFGR_EXTSEL | ADC_CFGR_ALIGN |\ 348 ADC_CFGR_RES | ADC_CFGR_DMACFG | ADC_CFGR_DMAEN ) 357 #if defined(ADC_SMPR1_SMPPLUS) 358 #define ADC_SMPR1_FIELDS (ADC_SMPR1_SMP9 | ADC_SMPR1_SMP8 | ADC_SMPR1_SMP7 |\ 359 ADC_SMPR1_SMP6 | ADC_SMPR1_SMP5 | ADC_SMPR1_SMP4 |\ 360 ADC_SMPR1_SMP3 | ADC_SMPR1_SMP2 | ADC_SMPR1_SMP1 |\ 361 ADC_SMPR1_SMP0 | ADC_SMPR1_SMPPLUS) 363 #define ADC_SMPR1_FIELDS (ADC_SMPR1_SMP9 | ADC_SMPR1_SMP8 | ADC_SMPR1_SMP7 |\ 364 ADC_SMPR1_SMP6 | ADC_SMPR1_SMP5 | ADC_SMPR1_SMP4 |\ 365 ADC_SMPR1_SMP3 | ADC_SMPR1_SMP2 | ADC_SMPR1_SMP1 |\ 377 #if defined(ADC_CFGR_DFSDMCFG) &&defined(DFSDM1_Channel0) 378 #define ADC_CFGR_FIELDS_2 ((ADC_CFGR_DMACFG | ADC_CFGR_AUTDLY | ADC_CFGR_DFSDMCFG)) 380 #define ADC_CFGR_FIELDS_2 ((ADC_CFGR_DMACFG | ADC_CFGR_AUTDLY)) 386 #if defined(ADC_CFGR_DFSDMCFG) &&defined(DFSDM1_Channel0) 390 #define ADC_DFSDM_MODE_DISABLE (0x00000000UL) 391 #define ADC_DFSDM_MODE_ENABLE (LL_ADC_REG_DFSDM_TRANSFER_ENABLE) 403 #if defined(ADC_MULTIMODE_SUPPORT) 422 #define ADC_FORCE_MODE_INDEPENDENT(__HANDLE__) \ 423 LL_ADC_SetMultimode(__LL_ADC_COMMON_INSTANCE((__HANDLE__)->Instance), LL_ADC_MULTI_INDEPENDENT) 444 #define ADC_IS_SOFTWARE_START_INJECTED(__HANDLE__) \ 445 (((__HANDLE__)->Instance->JSQR & ADC_JSQR_JEXTEN) == 0UL) 452 #define ADC_IS_CONVERSION_ONGOING_REGULAR_INJECTED(__HANDLE__) \ 453 (( (((__HANDLE__)->Instance->CR) & (ADC_CR_ADSTART | ADC_CR_JADSTART)) == 0UL \ 461 #define ADC_IS_CONVERSION_ONGOING_INJECTED(__HANDLE__) \ 462 (LL_ADC_INJ_IsConversionOngoing((__HANDLE__)->Instance)) 470 #if defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) || defined (STM32L496xx) || defined (STM32L4A6xx) 471 #define ADC_IS_INDEPENDENT(__HANDLE__) \ 472 ( ( ( ((__HANDLE__)->Instance) == ADC3) \ 478 #elif defined (STM32L431xx) || defined (STM32L432xx) || defined (STM32L433xx) || defined (STM32L442xx) || defined (STM32L443xx) || defined (STM32L451xx) || defined (STM32L452xx) || defined (STM32L462xx) || defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined (STM32L4S9xx) 479 #define ADC_IS_INDEPENDENT(__HANDLE__) (SET) 480 #elif defined (STM32L412xx) || defined (STM32L422xx) 481 #define ADC_IS_INDEPENDENT(__HANDLE__) (RESET) 490 #define ADC_JSQR_RK(__CHANNELNB__, __RANKNB__) ((((__CHANNELNB__) & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) << ((__RANKNB__) & ADC_INJ_RANK_ID_JSQR_MASK)) 497 #define ADC_CFGR_INJECT_CONTEXT_QUEUE(__INJECT_CONTEXT_QUEUE_MODE__) ((__INJECT_CONTEXT_QUEUE_MODE__) << ADC_CFGR_JQM_Pos) 504 #define ADC_CFGR_INJECT_DISCCONTINUOUS(__INJECT_DISCONTINUOUS_MODE__) ((__INJECT_DISCONTINUOUS_MODE__) << ADC_CFGR_JDISCEN_Pos) 511 #define ADC_CFGR_REG_DISCONTINUOUS(__REG_DISCONTINUOUS_MODE__) ((__REG_DISCONTINUOUS_MODE__) << ADC_CFGR_DISCEN_Pos) 518 #define ADC_CFGR_DISCONTINUOUS_NUM(__NBR_DISCONTINUOUS_CONV__) (((__NBR_DISCONTINUOUS_CONV__) - 1UL) << ADC_CFGR_DISCNUM_Pos) 525 #define ADC_CFGR_AUTOWAIT(__AUTOWAIT__) ((__AUTOWAIT__) << ADC_CFGR_AUTDLY_Pos) 532 #define ADC_CFGR_CONTINUOUS(__CONTINUOUS_MODE__) ((__CONTINUOUS_MODE__) << ADC_CFGR_CONT_Pos) 539 #define ADC_CFGR_DMACONTREQ(__DMACONTREQ_MODE__) ((__DMACONTREQ_MODE__) << ADC_CFGR_DMACFG_Pos) 546 #define ADC_OFR_CHANNEL(__CHANNEL__) ((__CHANNEL__) << ADC_OFR1_OFFSET1_CH_Pos) 553 #define ADC_DIFSEL_CHANNEL(__CHANNEL__) (1UL << (__CHANNEL__)) 560 #define ADC_CALFACT_DIFF_SET(__CALIBRATION_FACTOR__) (((__CALIBRATION_FACTOR__) & (ADC_CALFACT_CALFACT_D_Pos >> ADC_CALFACT_CALFACT_D_Pos) ) << ADC_CALFACT_CALFACT_D_Pos) 567 #define ADC_CALFACT_DIFF_GET(__CALIBRATION_FACTOR__) ((__CALIBRATION_FACTOR__) >> ADC_CALFACT_CALFACT_D_Pos) 574 #define ADC_TRX_HIGHTHRESHOLD(__THRESHOLD__) ((__THRESHOLD__) << 16UL) 576 #if defined(ADC_MULTIMODE_SUPPORT) 582 #define ADC_CCR_MULTI_DMACONTREQ(__DMACONTREQ_MODE__) ((__DMACONTREQ_MODE__) << ADC_CCR_DMACFG_Pos) 597 #define ADC_OFFSET_SHIFT_RESOLUTION(__HANDLE__, __OFFSET__) \ 598 ((__OFFSET__) << ((((__HANDLE__)->Instance->CFGR & ADC_CFGR_RES) >> 3UL) * 2UL)) 612 #define ADC_AWD1THRESHOLD_SHIFT_RESOLUTION(__HANDLE__, __THRESHOLD__) \ 613 ((__THRESHOLD__) << ((((__HANDLE__)->Instance->CFGR & ADC_CFGR_RES) >> 3UL) * 2UL)) 626 #define ADC_AWD23THRESHOLD_SHIFT_RESOLUTION(__HANDLE__, __THRESHOLD__) \ 627 ((((__HANDLE__)->Instance->CFGR & ADC_CFGR_RES) != (ADC_CFGR_RES_1 | ADC_CFGR_RES_0)) ? \ 628 ((__THRESHOLD__) >> ((4UL - ((((__HANDLE__)->Instance->CFGR & ADC_CFGR_RES) >> 3UL) * 2UL)) & 0x1FUL)) : \ 629 ((__THRESHOLD__) << 2UL) \ 637 #if defined(ADC_MULTIMODE_SUPPORT) 638 #define ADC_CLEAR_COMMON_CONTROL_REGISTER(__HANDLE__) CLEAR_BIT(__LL_ADC_COMMON_INSTANCE((__HANDLE__)->Instance)->CCR, \ 649 #define ADC_CLEAR_COMMON_CONTROL_REGISTER(__HANDLE__) CLEAR_BIT(__LL_ADC_COMMON_INSTANCE((__HANDLE__)->Instance)->CCR, \ 658 #if defined (STM32L412xx) || defined (STM32L422xx) || defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) || defined (STM32L496xx) || defined (STM32L4A6xx) 666 #define ADC_MULTI_SLAVE(__HANDLE_MASTER__, __HANDLE_SLAVE__) \ 667 ( (((__HANDLE_MASTER__)->Instance == ADC1)) ? ((__HANDLE_SLAVE__)->Instance = ADC2) : ((__HANDLE_SLAVE__)->Instance = NULL) ) 676 #if defined (STM32L412xx) || defined (STM32L422xx) || defined (STM32L431xx) || defined (STM32L432xx) || defined (STM32L433xx) || defined (STM32L442xx) || defined (STM32L443xx) || defined (STM32L451xx) || defined (STM32L452xx) || defined (STM32L462xx) || defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined (STM32L4S9xx) 678 #define ADC_TEMPERATURE_SENSOR_INSTANCE(__HANDLE__) (((__HANDLE__)->Instance) == ADC1) 679 #elif defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) || defined (STM32L496xx) || defined (STM32L4A6xx) 681 #define ADC_TEMPERATURE_SENSOR_INSTANCE(__HANDLE__) ((((__HANDLE__)->Instance) == ADC1) || (((__HANDLE__)->Instance) == ADC3)) 689 #if defined (STM32L412xx) || defined (STM32L422xx) || defined (STM32L431xx) || defined (STM32L432xx) || defined (STM32L433xx) || defined (STM32L442xx) || defined (STM32L443xx) || defined (STM32L451xx) || defined (STM32L452xx) || defined (STM32L462xx) || defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined (STM32L4S9xx) 691 #define ADC_BATTERY_VOLTAGE_INSTANCE(__HANDLE__) (((__HANDLE__)->Instance) == ADC1) 692 #elif defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) || defined (STM32L496xx) || defined (STM32L4A6xx) 694 #define ADC_BATTERY_VOLTAGE_INSTANCE(__HANDLE__) ((((__HANDLE__)->Instance) == ADC1) || (((__HANDLE__)->Instance) == ADC3)) 703 #define ADC_VREFINT_INSTANCE(__HANDLE__) (((__HANDLE__)->Instance) == ADC1) 710 #define IS_ADC_INJECTED_NB_CONV(__LENGTH__) (((__LENGTH__) >= (1U)) && ((__LENGTH__) <= (4U))) 717 #define IS_ADC_CALFACT(__CALIBRATION_FACTOR__) ((__CALIBRATION_FACTOR__) <= (0x7FU)) 726 #if defined (STM32L431xx) || defined (STM32L432xx) || defined (STM32L433xx) || defined (STM32L442xx) || defined (STM32L443xx) || defined (STM32L451xx) || defined (STM32L452xx) || defined (STM32L462xx) || defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined (STM32L4S9xx) 727 #define IS_ADC_CHANNEL(__HANDLE__, __CHANNEL__) ((((__HANDLE__)->Instance) == ADC1) && \ 728 (((__CHANNEL__) == ADC_CHANNEL_1) || \ 729 ((__CHANNEL__) == ADC_CHANNEL_2) || \ 730 ((__CHANNEL__) == ADC_CHANNEL_3) || \ 731 ((__CHANNEL__) == ADC_CHANNEL_4) || \ 732 ((__CHANNEL__) == ADC_CHANNEL_5) || \ 733 ((__CHANNEL__) == ADC_CHANNEL_6) || \ 734 ((__CHANNEL__) == ADC_CHANNEL_7) || \ 735 ((__CHANNEL__) == ADC_CHANNEL_8) || \ 736 ((__CHANNEL__) == ADC_CHANNEL_9) || \ 737 ((__CHANNEL__) == ADC_CHANNEL_10) || \ 738 ((__CHANNEL__) == ADC_CHANNEL_11) || \ 739 ((__CHANNEL__) == ADC_CHANNEL_12) || \ 740 ((__CHANNEL__) == ADC_CHANNEL_13) || \ 741 ((__CHANNEL__) == ADC_CHANNEL_14) || \ 742 ((__CHANNEL__) == ADC_CHANNEL_15) || \ 743 ((__CHANNEL__) == ADC_CHANNEL_16) || \ 744 ((__CHANNEL__) == ADC_CHANNEL_17) || \ 745 ((__CHANNEL__) == ADC_CHANNEL_18) || \ 746 ((__CHANNEL__) == ADC_CHANNEL_VREFINT) || \ 747 ((__CHANNEL__) == ADC_CHANNEL_TEMPSENSOR) || \ 748 ((__CHANNEL__) == ADC_CHANNEL_VBAT) || \ 749 ((__CHANNEL__) == ADC_CHANNEL_DAC1CH1) || \ 750 ((__CHANNEL__) == ADC_CHANNEL_DAC1CH2))) 751 #elif defined (STM32L412xx) || defined (STM32L422xx) 752 #define IS_ADC_CHANNEL(__HANDLE__, __CHANNEL__) (((((__HANDLE__)->Instance) == ADC1) && \ 753 (((__CHANNEL__) == ADC_CHANNEL_1) || \ 754 ((__CHANNEL__) == ADC_CHANNEL_2) || \ 755 ((__CHANNEL__) == ADC_CHANNEL_3) || \ 756 ((__CHANNEL__) == ADC_CHANNEL_4) || \ 757 ((__CHANNEL__) == ADC_CHANNEL_5) || \ 758 ((__CHANNEL__) == ADC_CHANNEL_6) || \ 759 ((__CHANNEL__) == ADC_CHANNEL_7) || \ 760 ((__CHANNEL__) == ADC_CHANNEL_8) || \ 761 ((__CHANNEL__) == ADC_CHANNEL_9) || \ 762 ((__CHANNEL__) == ADC_CHANNEL_10) || \ 763 ((__CHANNEL__) == ADC_CHANNEL_11) || \ 764 ((__CHANNEL__) == ADC_CHANNEL_12) || \ 765 ((__CHANNEL__) == ADC_CHANNEL_13) || \ 766 ((__CHANNEL__) == ADC_CHANNEL_14) || \ 767 ((__CHANNEL__) == ADC_CHANNEL_15) || \ 768 ((__CHANNEL__) == ADC_CHANNEL_16) || \ 769 ((__CHANNEL__) == ADC_CHANNEL_VREFINT) || \ 770 ((__CHANNEL__) == ADC_CHANNEL_TEMPSENSOR) || \ 771 ((__CHANNEL__) == ADC_CHANNEL_VBAT))) || \ 772 ((((__HANDLE__)->Instance) == ADC2) && \ 773 (((__CHANNEL__) == ADC_CHANNEL_1) || \ 774 ((__CHANNEL__) == ADC_CHANNEL_2) || \ 775 ((__CHANNEL__) == ADC_CHANNEL_3) || \ 776 ((__CHANNEL__) == ADC_CHANNEL_4) || \ 777 ((__CHANNEL__) == ADC_CHANNEL_7) || \ 778 ((__CHANNEL__) == ADC_CHANNEL_8) || \ 779 ((__CHANNEL__) == ADC_CHANNEL_9) || \ 780 ((__CHANNEL__) == ADC_CHANNEL_10) || \ 781 ((__CHANNEL__) == ADC_CHANNEL_11) || \ 782 ((__CHANNEL__) == ADC_CHANNEL_12) || \ 783 ((__CHANNEL__) == ADC_CHANNEL_13) || \ 784 ((__CHANNEL__) == ADC_CHANNEL_14) || \ 785 ((__CHANNEL__) == ADC_CHANNEL_15) || \ 786 ((__CHANNEL__) == ADC_CHANNEL_16) ))) 787 #elif defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) || defined (STM32L496xx) || defined (STM32L4A6xx) 788 #define IS_ADC_CHANNEL(__HANDLE__, __CHANNEL__) (((((__HANDLE__)->Instance) == ADC1) && \ 789 (((__CHANNEL__) == ADC_CHANNEL_1) || \ 790 ((__CHANNEL__) == ADC_CHANNEL_2) || \ 791 ((__CHANNEL__) == ADC_CHANNEL_3) || \ 792 ((__CHANNEL__) == ADC_CHANNEL_4) || \ 793 ((__CHANNEL__) == ADC_CHANNEL_5) || \ 794 ((__CHANNEL__) == ADC_CHANNEL_6) || \ 795 ((__CHANNEL__) == ADC_CHANNEL_7) || \ 796 ((__CHANNEL__) == ADC_CHANNEL_8) || \ 797 ((__CHANNEL__) == ADC_CHANNEL_9) || \ 798 ((__CHANNEL__) == ADC_CHANNEL_10) || \ 799 ((__CHANNEL__) == ADC_CHANNEL_11) || \ 800 ((__CHANNEL__) == ADC_CHANNEL_12) || \ 801 ((__CHANNEL__) == ADC_CHANNEL_13) || \ 802 ((__CHANNEL__) == ADC_CHANNEL_14) || \ 803 ((__CHANNEL__) == ADC_CHANNEL_15) || \ 804 ((__CHANNEL__) == ADC_CHANNEL_16) || \ 805 ((__CHANNEL__) == ADC_CHANNEL_VREFINT) || \ 806 ((__CHANNEL__) == ADC_CHANNEL_TEMPSENSOR) || \ 807 ((__CHANNEL__) == ADC_CHANNEL_VBAT))) || \ 808 ((((__HANDLE__)->Instance) == ADC2) && \ 809 (((__CHANNEL__) == ADC_CHANNEL_1) || \ 810 ((__CHANNEL__) == ADC_CHANNEL_2) || \ 811 ((__CHANNEL__) == ADC_CHANNEL_3) || \ 812 ((__CHANNEL__) == ADC_CHANNEL_4) || \ 813 ((__CHANNEL__) == ADC_CHANNEL_5) || \ 814 ((__CHANNEL__) == ADC_CHANNEL_6) || \ 815 ((__CHANNEL__) == ADC_CHANNEL_7) || \ 816 ((__CHANNEL__) == ADC_CHANNEL_8) || \ 817 ((__CHANNEL__) == ADC_CHANNEL_9) || \ 818 ((__CHANNEL__) == ADC_CHANNEL_10) || \ 819 ((__CHANNEL__) == ADC_CHANNEL_11) || \ 820 ((__CHANNEL__) == ADC_CHANNEL_12) || \ 821 ((__CHANNEL__) == ADC_CHANNEL_13) || \ 822 ((__CHANNEL__) == ADC_CHANNEL_14) || \ 823 ((__CHANNEL__) == ADC_CHANNEL_15) || \ 824 ((__CHANNEL__) == ADC_CHANNEL_16) || \ 825 ((__CHANNEL__) == ADC_CHANNEL_17) || \ 826 ((__CHANNEL__) == ADC_CHANNEL_18) || \ 827 ((__CHANNEL__) == ADC_CHANNEL_DAC1CH1_ADC2) || \ 828 ((__CHANNEL__) == ADC_CHANNEL_DAC1CH2_ADC2))) || \ 829 ((((__HANDLE__)->Instance) == ADC3) && \ 830 (((__CHANNEL__) == ADC_CHANNEL_1) || \ 831 ((__CHANNEL__) == ADC_CHANNEL_2) || \ 832 ((__CHANNEL__) == ADC_CHANNEL_3) || \ 833 ((__CHANNEL__) == ADC_CHANNEL_4) || \ 834 ((__CHANNEL__) == ADC_CHANNEL_6) || \ 835 ((__CHANNEL__) == ADC_CHANNEL_7) || \ 836 ((__CHANNEL__) == ADC_CHANNEL_8) || \ 837 ((__CHANNEL__) == ADC_CHANNEL_9) || \ 838 ((__CHANNEL__) == ADC_CHANNEL_10) || \ 839 ((__CHANNEL__) == ADC_CHANNEL_11) || \ 840 ((__CHANNEL__) == ADC_CHANNEL_12) || \ 841 ((__CHANNEL__) == ADC_CHANNEL_13) || \ 842 ((__CHANNEL__) == ADC_CHANNEL_14) || \ 843 ((__CHANNEL__) == ADC_CHANNEL_15) || \ 844 ((__CHANNEL__) == ADC_CHANNEL_TEMPSENSOR) || \ 845 ((__CHANNEL__) == ADC_CHANNEL_VBAT) || \ 846 ((__CHANNEL__) == ADC_CHANNEL_DAC1CH1_ADC3) || \ 847 ((__CHANNEL__) == ADC_CHANNEL_DAC1CH2_ADC3) ))) 856 #if defined (STM32L412xx) || defined (STM32L422xx) || defined (STM32L431xx) || defined (STM32L432xx) || defined (STM32L433xx) || defined (STM32L442xx) || defined (STM32L443xx) || defined (STM32L451xx) || defined (STM32L452xx) || defined (STM32L462xx) || defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined (STM32L4S9xx) 857 #define IS_ADC_DIFF_CHANNEL(__HANDLE__, __CHANNEL__) (((__CHANNEL__) == ADC_CHANNEL_1) || \ 858 ((__CHANNEL__) == ADC_CHANNEL_2) || \ 859 ((__CHANNEL__) == ADC_CHANNEL_3) || \ 860 ((__CHANNEL__) == ADC_CHANNEL_4) || \ 861 ((__CHANNEL__) == ADC_CHANNEL_5) || \ 862 ((__CHANNEL__) == ADC_CHANNEL_6) || \ 863 ((__CHANNEL__) == ADC_CHANNEL_7) || \ 864 ((__CHANNEL__) == ADC_CHANNEL_8) || \ 865 ((__CHANNEL__) == ADC_CHANNEL_9) || \ 866 ((__CHANNEL__) == ADC_CHANNEL_10) || \ 867 ((__CHANNEL__) == ADC_CHANNEL_11) || \ 868 ((__CHANNEL__) == ADC_CHANNEL_12) || \ 869 ((__CHANNEL__) == ADC_CHANNEL_13) || \ 870 ((__CHANNEL__) == ADC_CHANNEL_14) || \ 871 ((__CHANNEL__) == ADC_CHANNEL_15) ) 872 #elif defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) || defined (STM32L496xx) || defined (STM32L4A6xx) 877 #define IS_ADC_DIFF_CHANNEL(__HANDLE__, __CHANNEL__) ((((((__HANDLE__)->Instance) == ADC1) || \ 878 (((__HANDLE__)->Instance) == ADC2)) && \ 879 (((__CHANNEL__) == ADC_CHANNEL_1) || \ 880 ((__CHANNEL__) == ADC_CHANNEL_2) || \ 881 ((__CHANNEL__) == ADC_CHANNEL_3) || \ 882 ((__CHANNEL__) == ADC_CHANNEL_4) || \ 883 ((__CHANNEL__) == ADC_CHANNEL_5) || \ 884 ((__CHANNEL__) == ADC_CHANNEL_6) || \ 885 ((__CHANNEL__) == ADC_CHANNEL_7) || \ 886 ((__CHANNEL__) == ADC_CHANNEL_8) || \ 887 ((__CHANNEL__) == ADC_CHANNEL_9) || \ 888 ((__CHANNEL__) == ADC_CHANNEL_10) || \ 889 ((__CHANNEL__) == ADC_CHANNEL_11) || \ 890 ((__CHANNEL__) == ADC_CHANNEL_12) || \ 891 ((__CHANNEL__) == ADC_CHANNEL_13) || \ 892 ((__CHANNEL__) == ADC_CHANNEL_14) || \ 893 ((__CHANNEL__) == ADC_CHANNEL_15))) || \ 894 ((((__HANDLE__)->Instance) == ADC3) && \ 895 (((__CHANNEL__) == ADC_CHANNEL_1) || \ 896 ((__CHANNEL__) == ADC_CHANNEL_2) || \ 897 ((__CHANNEL__) == ADC_CHANNEL_3) || \ 898 ((__CHANNEL__) == ADC_CHANNEL_6) || \ 899 ((__CHANNEL__) == ADC_CHANNEL_7) || \ 900 ((__CHANNEL__) == ADC_CHANNEL_8) || \ 901 ((__CHANNEL__) == ADC_CHANNEL_9) || \ 902 ((__CHANNEL__) == ADC_CHANNEL_10) || \ 903 ((__CHANNEL__) == ADC_CHANNEL_11) || \ 904 ((__CHANNEL__) == ADC_CHANNEL_12) ))) 912 #define IS_ADC_SINGLE_DIFFERENTIAL(__SING_DIFF__) (((__SING_DIFF__) == ADC_SINGLE_ENDED) || \ 913 ((__SING_DIFF__) == ADC_DIFFERENTIAL_ENDED) ) 920 #define IS_ADC_OFFSET_NUMBER(__OFFSET_NUMBER__) (((__OFFSET_NUMBER__) == ADC_OFFSET_NONE) || \ 921 ((__OFFSET_NUMBER__) == ADC_OFFSET_1) || \ 922 ((__OFFSET_NUMBER__) == ADC_OFFSET_2) || \ 923 ((__OFFSET_NUMBER__) == ADC_OFFSET_3) || \ 924 ((__OFFSET_NUMBER__) == ADC_OFFSET_4) ) 931 #define IS_ADC_INJECTED_RANK(__CHANNEL__) (((__CHANNEL__) == ADC_INJECTED_RANK_1) || \ 932 ((__CHANNEL__) == ADC_INJECTED_RANK_2) || \ 933 ((__CHANNEL__) == ADC_INJECTED_RANK_3) || \ 934 ((__CHANNEL__) == ADC_INJECTED_RANK_4) ) 942 #define IS_ADC_EXTTRIGINJEC(__HANDLE__, __INJTRIG__) (((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T1_TRGO) || \ 943 ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T1_CC4) || \ 944 ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T2_TRGO) || \ 945 ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T2_CC1) || \ 946 ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T3_CC4) || \ 947 ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T4_TRGO) || \ 948 ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_EXT_IT15) || \ 949 ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T8_CC4) || \ 950 ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T1_TRGO2) || \ 951 ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T8_TRGO) || \ 952 ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T8_TRGO2) || \ 953 ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T3_CC3) || \ 954 ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T3_TRGO) || \ 955 ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T3_CC1) || \ 956 ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T6_TRGO) || \ 957 ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T15_TRGO) || \ 958 ((__INJTRIG__) == ADC_INJECTED_SOFTWARE_START) ) 965 #define IS_ADC_EXTTRIGINJEC_EDGE(__EDGE__) (((__EDGE__) == ADC_EXTERNALTRIGINJECCONV_EDGE_NONE) || \ 966 ((__EDGE__) == ADC_EXTERNALTRIGINJECCONV_EDGE_RISING) || \ 967 ((__EDGE__) == ADC_EXTERNALTRIGINJECCONV_EDGE_FALLING) || \ 968 ((__EDGE__) == ADC_EXTERNALTRIGINJECCONV_EDGE_RISINGFALLING) ) 970 #if defined(ADC_MULTIMODE_SUPPORT) 976 #define IS_ADC_MULTIMODE(__MODE__) (((__MODE__) == ADC_MODE_INDEPENDENT) || \ 977 ((__MODE__) == ADC_DUALMODE_REGSIMULT_INJECSIMULT) || \ 978 ((__MODE__) == ADC_DUALMODE_REGSIMULT_ALTERTRIG) || \ 979 ((__MODE__) == ADC_DUALMODE_REGINTERL_INJECSIMULT) || \ 980 ((__MODE__) == ADC_DUALMODE_INJECSIMULT) || \ 981 ((__MODE__) == ADC_DUALMODE_REGSIMULT) || \ 982 ((__MODE__) == ADC_DUALMODE_INTERL) || \ 983 ((__MODE__) == ADC_DUALMODE_ALTERTRIG) ) 990 #define IS_ADC_DMA_ACCESS_MULTIMODE(__MODE__) (((__MODE__) == ADC_DMAACCESSMODE_DISABLED) || \ 991 ((__MODE__) == ADC_DMAACCESSMODE_12_10_BITS) || \ 992 ((__MODE__) == ADC_DMAACCESSMODE_8_6_BITS) ) 999 #define IS_ADC_SAMPLING_DELAY(__DELAY__) (((__DELAY__) == ADC_TWOSAMPLINGDELAY_1CYCLE) || \ 1000 ((__DELAY__) == ADC_TWOSAMPLINGDELAY_2CYCLES) || \ 1001 ((__DELAY__) == ADC_TWOSAMPLINGDELAY_3CYCLES) || \ 1002 ((__DELAY__) == ADC_TWOSAMPLINGDELAY_4CYCLES) || \ 1003 ((__DELAY__) == ADC_TWOSAMPLINGDELAY_5CYCLES) || \ 1004 ((__DELAY__) == ADC_TWOSAMPLINGDELAY_6CYCLES) || \ 1005 ((__DELAY__) == ADC_TWOSAMPLINGDELAY_7CYCLES) || \ 1006 ((__DELAY__) == ADC_TWOSAMPLINGDELAY_8CYCLES) || \ 1007 ((__DELAY__) == ADC_TWOSAMPLINGDELAY_9CYCLES) || \ 1008 ((__DELAY__) == ADC_TWOSAMPLINGDELAY_10CYCLES) || \ 1009 ((__DELAY__) == ADC_TWOSAMPLINGDELAY_11CYCLES) || \ 1010 ((__DELAY__) == ADC_TWOSAMPLINGDELAY_12CYCLES) ) 1018 #define IS_ADC_ANALOG_WATCHDOG_NUMBER(__WATCHDOG__) (((__WATCHDOG__) == ADC_ANALOGWATCHDOG_1) || \ 1019 ((__WATCHDOG__) == ADC_ANALOGWATCHDOG_2) || \ 1020 ((__WATCHDOG__) == ADC_ANALOGWATCHDOG_3) ) 1027 #define IS_ADC_ANALOG_WATCHDOG_MODE(__WATCHDOG_MODE__) (((__WATCHDOG_MODE__) == ADC_ANALOGWATCHDOG_NONE) || \ 1028 ((__WATCHDOG_MODE__) == ADC_ANALOGWATCHDOG_SINGLE_REG) || \ 1029 ((__WATCHDOG_MODE__) == ADC_ANALOGWATCHDOG_SINGLE_INJEC) || \ 1030 ((__WATCHDOG_MODE__) == ADC_ANALOGWATCHDOG_SINGLE_REGINJEC) || \ 1031 ((__WATCHDOG_MODE__) == ADC_ANALOGWATCHDOG_ALL_REG) || \ 1032 ((__WATCHDOG_MODE__) == ADC_ANALOGWATCHDOG_ALL_INJEC) || \ 1033 ((__WATCHDOG_MODE__) == ADC_ANALOGWATCHDOG_ALL_REGINJEC) ) 1040 #define IS_ADC_CONVERSION_GROUP(__CONVERSION__) (((__CONVERSION__) == ADC_REGULAR_GROUP) || \ 1041 ((__CONVERSION__) == ADC_INJECTED_GROUP) || \ 1042 ((__CONVERSION__) == ADC_REGULAR_INJECTED_GROUP) ) 1049 #define IS_ADC_EVENT_TYPE(__EVENT__) (((__EVENT__) == ADC_EOSMP_EVENT) || \ 1050 ((__EVENT__) == ADC_AWD_EVENT) || \ 1051 ((__EVENT__) == ADC_AWD2_EVENT) || \ 1052 ((__EVENT__) == ADC_AWD3_EVENT) || \ 1053 ((__EVENT__) == ADC_OVR_EVENT) || \ 1054 ((__EVENT__) == ADC_JQOVF_EVENT) ) 1061 #define IS_ADC_OVERSAMPLING_RATIO(__RATIO__) (((__RATIO__) == ADC_OVERSAMPLING_RATIO_2 ) || \ 1062 ((__RATIO__) == ADC_OVERSAMPLING_RATIO_4 ) || \ 1063 ((__RATIO__) == ADC_OVERSAMPLING_RATIO_8 ) || \ 1064 ((__RATIO__) == ADC_OVERSAMPLING_RATIO_16 ) || \ 1065 ((__RATIO__) == ADC_OVERSAMPLING_RATIO_32 ) || \ 1066 ((__RATIO__) == ADC_OVERSAMPLING_RATIO_64 ) || \ 1067 ((__RATIO__) == ADC_OVERSAMPLING_RATIO_128 ) || \ 1068 ((__RATIO__) == ADC_OVERSAMPLING_RATIO_256 )) 1075 #define IS_ADC_RIGHT_BIT_SHIFT(__SHIFT__) (((__SHIFT__) == ADC_RIGHTBITSHIFT_NONE) || \ 1076 ((__SHIFT__) == ADC_RIGHTBITSHIFT_1 ) || \ 1077 ((__SHIFT__) == ADC_RIGHTBITSHIFT_2 ) || \ 1078 ((__SHIFT__) == ADC_RIGHTBITSHIFT_3 ) || \ 1079 ((__SHIFT__) == ADC_RIGHTBITSHIFT_4 ) || \ 1080 ((__SHIFT__) == ADC_RIGHTBITSHIFT_5 ) || \ 1081 ((__SHIFT__) == ADC_RIGHTBITSHIFT_6 ) || \ 1082 ((__SHIFT__) == ADC_RIGHTBITSHIFT_7 ) || \ 1083 ((__SHIFT__) == ADC_RIGHTBITSHIFT_8 )) 1090 #define IS_ADC_TRIGGERED_OVERSAMPLING_MODE(__MODE__) (((__MODE__) == ADC_TRIGGEREDMODE_SINGLE_TRIGGER) || \ 1091 ((__MODE__) == ADC_TRIGGEREDMODE_MULTI_TRIGGER) ) 1098 #define IS_ADC_REGOVERSAMPLING_MODE(__MODE__) (((__MODE__) == ADC_REGOVERSAMPLING_CONTINUED_MODE) || \ 1099 ((__MODE__) == ADC_REGOVERSAMPLING_RESUMED_MODE) ) 1109 #if defined(ADC_CFGR_DFSDMCFG) &&defined(DFSDM1_Channel0) 1110 #define IS_ADC_DFSDMCFG_MODE(__HANDLE__) (((__HANDLE__)->Init.DFSDMConfig == ADC_DFSDM_MODE_DISABLE) || \ 1111 ((__HANDLE__)->Init.DFSDMConfig == ADC_DFSDM_MODE_ENABLE) ) 1113 #define IS_ADC_DFSDMCFG_MODE(__HANDLE__) (SET) 1124 #if defined(ADC_CFGR_DFSDMCFG) &&defined(DFSDM1_Channel0) 1125 #define ADC_CFGR_DFSDM(__HANDLE__) ((__HANDLE__)->Init.DFSDMConfig) 1127 #define ADC_CFGR_DFSDM(__HANDLE__) (0x0UL) 1149 uint32_t CalibrationFactor);
1160 #if defined(ADC_MULTIMODE_SUPPORT) 1181 #if defined(ADC_MULTIMODE_SUPPORT) 1194 #if defined(ADC_MULTIMODE_SUPPORT) HAL_StatusTypeDef HAL_ADCEx_DisableInjectedQueue(ADC_HandleTypeDef *hadc)
Disable Injected Queue.
HAL_StatusTypeDef HAL_ADCEx_Calibration_SetValue(ADC_HandleTypeDef *hadc, uint32_t SingleDiff, uint32_t CalibrationFactor)
Set the calibration factor to overwrite automatic conversion result. ADC must be enabled and no conve...
HAL_StatusTypeDef HAL_ADCEx_InjectedPollForConversion(ADC_HandleTypeDef *hadc, uint32_t Timeout)
Wait for injected group conversion to be completed.
HAL_StatusTypeDef HAL_ADCEx_InjectedStop_IT(ADC_HandleTypeDef *hadc)
Stop conversion of injected channels, disable interruption of end-of-conversion. Disable ADC peripher...
void HAL_ADCEx_LevelOutOfWindow2Callback(ADC_HandleTypeDef *hadc)
Analog watchdog 2 callback in non-blocking mode.
uint32_t TwoSamplingDelay
uint32_t HAL_ADCEx_Calibration_GetValue(ADC_HandleTypeDef *hadc, uint32_t SingleDiff)
Get the calibration factor.
HAL_StatusTypeDef HAL_ADCEx_RegularStop_DMA(ADC_HandleTypeDef *hadc)
Stop ADC conversion of regular group (and injected group in case of auto_injection mode)...
uint32_t HAL_ADCEx_InjectedGetValue(ADC_HandleTypeDef *hadc, uint32_t InjectedRank)
Get ADC injected group conversion result.
HAL_StatusTypeDef HAL_ADCEx_InjectedStop(ADC_HandleTypeDef *hadc)
Stop conversion of injected channels. Disable ADC peripheral if no regular conversion is on going...
void HAL_ADCEx_InjectedConvCpltCallback(ADC_HandleTypeDef *hadc)
Injected conversion complete callback in non-blocking mode.
HAL_StatusTypeDef HAL_ADCEx_Calibration_Start(ADC_HandleTypeDef *hadc, uint32_t SingleDiff)
Perform an ADC automatic self-calibration Calibration prerequisite: ADC must be disabled (execute thi...
HAL_StatusTypeDef HAL_ADCEx_InjectedStart(ADC_HandleTypeDef *hadc)
Enable ADC, start conversion of injected group.
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef HAL_ADCEx_EnableInjectedQueue(ADC_HandleTypeDef *hadc)
Enable Injected Queue.
uint32_t ExternalTrigInjecConvEdge
HAL_StatusTypeDef HAL_ADCEx_MultiModeStart_DMA(ADC_HandleTypeDef *hadc, uint32_t *pData, uint32_t Length)
Enable ADC, start MultiMode conversion and transfer regular results through DMA.
void HAL_ADCEx_InjectedQueueOverflowCallback(ADC_HandleTypeDef *hadc)
Injected context queue overflow callback.
uint32_t InjectedSamplingTime
uint32_t InjectedSingleDiff
uint32_t InjectedOffsetNumber
HAL_StatusTypeDef HAL_ADCEx_InjectedStart_IT(ADC_HandleTypeDef *hadc)
Enable ADC, start conversion of injected group with interruption.
HAL_StatusTypeDef HAL_ADCEx_RegularMultiModeStop_DMA(ADC_HandleTypeDef *hadc)
Stop DMA-based multimode ADC conversion, disable ADC DMA transfer, disable ADC peripheral if no injec...
struct __ADC_HandleTypeDef else typedef struct endif ADC_HandleTypeDef
ADC handle Structure definition.
ADC Injected Conversion Oversampling structure definition.
FunctionalState AutoInjectedConv
HAL_StatusTypeDef HAL_ADCEx_EnterADCDeepPowerDownMode(ADC_HandleTypeDef *hadc)
Enter ADC deep-power-down mode.
FunctionalState InjectedDiscontinuousConvMode
uint32_t InjectedNbrOfConversion
void HAL_ADCEx_EndOfSamplingCallback(ADC_HandleTypeDef *hadc)
End Of Sampling callback in non-blocking mode.
HAL_StatusTypeDef HAL_ADCEx_InjectedConfigChannel(ADC_HandleTypeDef *hadc, ADC_InjectionConfTypeDef *sConfigInjected)
Configure a channel to be assigned to ADC group injected.
ADC_InjOversamplingTypeDef InjecOversampling
HAL_StatusTypeDef HAL_ADCEx_MultiModeConfigChannel(ADC_HandleTypeDef *hadc, ADC_MultiModeTypeDef *multimode)
Enable ADC multimode and configure multimode parameters.
FunctionalState QueueInjectedContext
void HAL_ADCEx_LevelOutOfWindow3Callback(ADC_HandleTypeDef *hadc)
Analog watchdog 3 callback in non-blocking mode.
Structure definition of ADC multimode.
FunctionalState InjecOversamplingMode
HAL_StatusTypeDef HAL_ADCEx_DisableVoltageRegulator(ADC_HandleTypeDef *hadc)
Disable ADC voltage regulator.
HAL_StatusTypeDef HAL_ADCEx_RegularStop_IT(ADC_HandleTypeDef *hadc)
Stop ADC conversion of ADC groups regular and injected, disable interrution of end-of-conversion, disable ADC peripheral if no conversion is on going on injected group.
HAL_StatusTypeDef HAL_ADCEx_RegularStop(ADC_HandleTypeDef *hadc)
Stop ADC conversion of regular group (and injected channels in case of auto_injection mode)...
uint32_t HAL_ADCEx_MultiModeGetValue(ADC_HandleTypeDef *hadc)
Return the last ADC Master and Slave regular conversions results when in multimode configuration...
HAL_StatusTypeDef HAL_ADCEx_MultiModeStop_DMA(ADC_HandleTypeDef *hadc)
Stop multimode ADC conversion, disable ADC DMA transfer, disable ADC peripheral.
Structure definition of ADC group injected and ADC channel affected to ADC group injected.
uint32_t ExternalTrigInjecConv