21 #ifndef STM32L4xx_HAL_ADC_H 22 #define STM32L4xx_HAL_ADC_H 182 #if defined(ADC_CFGR_DFSDMCFG) &&defined(DFSDM1_Channel0) 321 #define HAL_ADC_STATE_RESET (0x00000000UL) 322 #define HAL_ADC_STATE_READY (0x00000001UL) 323 #define HAL_ADC_STATE_BUSY_INTERNAL (0x00000002UL) 324 #define HAL_ADC_STATE_TIMEOUT (0x00000004UL) 327 #define HAL_ADC_STATE_ERROR_INTERNAL (0x00000010UL) 328 #define HAL_ADC_STATE_ERROR_CONFIG (0x00000020UL) 329 #define HAL_ADC_STATE_ERROR_DMA (0x00000040UL) 332 #define HAL_ADC_STATE_REG_BUSY (0x00000100UL) 334 #define HAL_ADC_STATE_REG_EOC (0x00000200UL) 335 #define HAL_ADC_STATE_REG_OVR (0x00000400UL) 336 #define HAL_ADC_STATE_REG_EOSMP (0x00000800UL) 339 #define HAL_ADC_STATE_INJ_BUSY (0x00001000UL) 341 #define HAL_ADC_STATE_INJ_EOC (0x00002000UL) 342 #define HAL_ADC_STATE_INJ_JQOVF (0x00004000UL) 345 #define HAL_ADC_STATE_AWD1 (0x00010000UL) 346 #define HAL_ADC_STATE_AWD2 (0x00020000UL) 347 #define HAL_ADC_STATE_AWD3 (0x00040000UL) 350 #define HAL_ADC_STATE_MULTIMODE_SLAVE (0x00100000UL) 359 #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) 360 typedef struct __ADC_HandleTypeDef
372 #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) 373 void (* ConvCpltCallback)(
struct __ADC_HandleTypeDef *hadc);
374 void (* ConvHalfCpltCallback)(
struct __ADC_HandleTypeDef *hadc);
375 void (* LevelOutOfWindowCallback)(
struct __ADC_HandleTypeDef *hadc);
376 void (* ErrorCallback)(
struct __ADC_HandleTypeDef *hadc);
377 void (* InjectedConvCpltCallback)(
struct __ADC_HandleTypeDef *hadc);
378 void (* InjectedQueueOverflowCallback)(
struct __ADC_HandleTypeDef *hadc);
379 void (* LevelOutOfWindow2Callback)(
struct __ADC_HandleTypeDef *hadc);
380 void (* LevelOutOfWindow3Callback)(
struct __ADC_HandleTypeDef *hadc);
381 void (* EndOfSamplingCallback)(
struct __ADC_HandleTypeDef *hadc);
382 void (* MspInitCallback)(
struct __ADC_HandleTypeDef *hadc);
383 void (* MspDeInitCallback)(
struct __ADC_HandleTypeDef *hadc);
387 #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) 427 #define HAL_ADC_ERROR_NONE (0x00U) 428 #define HAL_ADC_ERROR_INTERNAL (0x01U) 430 #define HAL_ADC_ERROR_OVR (0x02U) 431 #define HAL_ADC_ERROR_DMA (0x04U) 432 #define HAL_ADC_ERROR_JQOVF (0x08U) 433 #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) 434 #define HAL_ADC_ERROR_INVALID_CALLBACK (0x10U) 443 #define ADC_CLOCK_SYNC_PCLK_DIV1 (LL_ADC_CLOCK_SYNC_PCLK_DIV1) 444 #define ADC_CLOCK_SYNC_PCLK_DIV2 (LL_ADC_CLOCK_SYNC_PCLK_DIV2) 445 #define ADC_CLOCK_SYNC_PCLK_DIV4 (LL_ADC_CLOCK_SYNC_PCLK_DIV4) 447 #define ADC_CLOCK_ASYNC_DIV1 (LL_ADC_CLOCK_ASYNC_DIV1) 448 #define ADC_CLOCK_ASYNC_DIV2 (LL_ADC_CLOCK_ASYNC_DIV2) 449 #define ADC_CLOCK_ASYNC_DIV4 (LL_ADC_CLOCK_ASYNC_DIV4) 450 #define ADC_CLOCK_ASYNC_DIV6 (LL_ADC_CLOCK_ASYNC_DIV6) 451 #define ADC_CLOCK_ASYNC_DIV8 (LL_ADC_CLOCK_ASYNC_DIV8) 452 #define ADC_CLOCK_ASYNC_DIV10 (LL_ADC_CLOCK_ASYNC_DIV10) 453 #define ADC_CLOCK_ASYNC_DIV12 (LL_ADC_CLOCK_ASYNC_DIV12) 454 #define ADC_CLOCK_ASYNC_DIV16 (LL_ADC_CLOCK_ASYNC_DIV16) 455 #define ADC_CLOCK_ASYNC_DIV32 (LL_ADC_CLOCK_ASYNC_DIV32) 456 #define ADC_CLOCK_ASYNC_DIV64 (LL_ADC_CLOCK_ASYNC_DIV64) 457 #define ADC_CLOCK_ASYNC_DIV128 (LL_ADC_CLOCK_ASYNC_DIV128) 458 #define ADC_CLOCK_ASYNC_DIV256 (LL_ADC_CLOCK_ASYNC_DIV256) 466 #define ADC_RESOLUTION_12B (LL_ADC_RESOLUTION_12B) 467 #define ADC_RESOLUTION_10B (LL_ADC_RESOLUTION_10B) 468 #define ADC_RESOLUTION_8B (LL_ADC_RESOLUTION_8B) 469 #define ADC_RESOLUTION_6B (LL_ADC_RESOLUTION_6B) 477 #define ADC_DATAALIGN_RIGHT (LL_ADC_DATA_ALIGN_RIGHT) 478 #define ADC_DATAALIGN_LEFT (LL_ADC_DATA_ALIGN_LEFT) 486 #define ADC_SCAN_DISABLE (0x00000000UL) 487 #define ADC_SCAN_ENABLE (0x00000001UL) 496 #define ADC_SOFTWARE_START (LL_ADC_REG_TRIG_SOFTWARE) 497 #define ADC_EXTERNALTRIG_T1_TRGO (LL_ADC_REG_TRIG_EXT_TIM1_TRGO) 498 #define ADC_EXTERNALTRIG_T1_TRGO2 (LL_ADC_REG_TRIG_EXT_TIM1_TRGO2) 499 #define ADC_EXTERNALTRIG_T1_CC1 (LL_ADC_REG_TRIG_EXT_TIM1_CH1) 500 #define ADC_EXTERNALTRIG_T1_CC2 (LL_ADC_REG_TRIG_EXT_TIM1_CH2) 501 #define ADC_EXTERNALTRIG_T1_CC3 (LL_ADC_REG_TRIG_EXT_TIM1_CH3) 502 #define ADC_EXTERNALTRIG_T2_TRGO (LL_ADC_REG_TRIG_EXT_TIM2_TRGO) 503 #define ADC_EXTERNALTRIG_T2_CC2 (LL_ADC_REG_TRIG_EXT_TIM2_CH2) 504 #define ADC_EXTERNALTRIG_T3_TRGO (LL_ADC_REG_TRIG_EXT_TIM3_TRGO) 505 #define ADC_EXTERNALTRIG_T3_CC4 (LL_ADC_REG_TRIG_EXT_TIM3_CH4) 506 #define ADC_EXTERNALTRIG_T4_TRGO (LL_ADC_REG_TRIG_EXT_TIM4_TRGO) 507 #define ADC_EXTERNALTRIG_T4_CC4 (LL_ADC_REG_TRIG_EXT_TIM4_CH4) 508 #define ADC_EXTERNALTRIG_T6_TRGO (LL_ADC_REG_TRIG_EXT_TIM6_TRGO) 509 #define ADC_EXTERNALTRIG_T8_TRGO (LL_ADC_REG_TRIG_EXT_TIM8_TRGO) 510 #define ADC_EXTERNALTRIG_T8_TRGO2 (LL_ADC_REG_TRIG_EXT_TIM8_TRGO2) 511 #define ADC_EXTERNALTRIG_T15_TRGO (LL_ADC_REG_TRIG_EXT_TIM15_TRGO) 512 #define ADC_EXTERNALTRIG_EXT_IT11 (LL_ADC_REG_TRIG_EXT_EXTI_LINE11) 520 #define ADC_EXTERNALTRIGCONVEDGE_NONE (0x00000000UL) 521 #define ADC_EXTERNALTRIGCONVEDGE_RISING (LL_ADC_REG_TRIG_EXT_RISING) 522 #define ADC_EXTERNALTRIGCONVEDGE_FALLING (LL_ADC_REG_TRIG_EXT_FALLING) 523 #define ADC_EXTERNALTRIGCONVEDGE_RISINGFALLING (LL_ADC_REG_TRIG_EXT_RISINGFALLING) 531 #define ADC_EOC_SINGLE_CONV (ADC_ISR_EOC) 532 #define ADC_EOC_SEQ_CONV (ADC_ISR_EOS) 540 #define ADC_OVR_DATA_PRESERVED (LL_ADC_REG_OVR_DATA_PRESERVED) 541 #define ADC_OVR_DATA_OVERWRITTEN (LL_ADC_REG_OVR_DATA_OVERWRITTEN) 549 #define ADC_REGULAR_RANK_1 (LL_ADC_REG_RANK_1) 550 #define ADC_REGULAR_RANK_2 (LL_ADC_REG_RANK_2) 551 #define ADC_REGULAR_RANK_3 (LL_ADC_REG_RANK_3) 552 #define ADC_REGULAR_RANK_4 (LL_ADC_REG_RANK_4) 553 #define ADC_REGULAR_RANK_5 (LL_ADC_REG_RANK_5) 554 #define ADC_REGULAR_RANK_6 (LL_ADC_REG_RANK_6) 555 #define ADC_REGULAR_RANK_7 (LL_ADC_REG_RANK_7) 556 #define ADC_REGULAR_RANK_8 (LL_ADC_REG_RANK_8) 557 #define ADC_REGULAR_RANK_9 (LL_ADC_REG_RANK_9) 558 #define ADC_REGULAR_RANK_10 (LL_ADC_REG_RANK_10) 559 #define ADC_REGULAR_RANK_11 (LL_ADC_REG_RANK_11) 560 #define ADC_REGULAR_RANK_12 (LL_ADC_REG_RANK_12) 561 #define ADC_REGULAR_RANK_13 (LL_ADC_REG_RANK_13) 562 #define ADC_REGULAR_RANK_14 (LL_ADC_REG_RANK_14) 563 #define ADC_REGULAR_RANK_15 (LL_ADC_REG_RANK_15) 564 #define ADC_REGULAR_RANK_16 (LL_ADC_REG_RANK_16) 572 #define ADC_SAMPLETIME_2CYCLES_5 (LL_ADC_SAMPLINGTIME_2CYCLES_5) 573 #define ADC_SAMPLETIME_6CYCLES_5 (LL_ADC_SAMPLINGTIME_6CYCLES_5) 574 #define ADC_SAMPLETIME_12CYCLES_5 (LL_ADC_SAMPLINGTIME_12CYCLES_5) 575 #define ADC_SAMPLETIME_24CYCLES_5 (LL_ADC_SAMPLINGTIME_24CYCLES_5) 576 #define ADC_SAMPLETIME_47CYCLES_5 (LL_ADC_SAMPLINGTIME_47CYCLES_5) 577 #define ADC_SAMPLETIME_92CYCLES_5 (LL_ADC_SAMPLINGTIME_92CYCLES_5) 578 #define ADC_SAMPLETIME_247CYCLES_5 (LL_ADC_SAMPLINGTIME_247CYCLES_5) 579 #define ADC_SAMPLETIME_640CYCLES_5 (LL_ADC_SAMPLINGTIME_640CYCLES_5) 580 #if defined(ADC_SMPR1_SMPPLUS) 581 #define ADC_SAMPLETIME_3CYCLES_5 (ADC_SMPR1_SMPPLUS | LL_ADC_SAMPLINGTIME_2CYCLES_5) 592 #define ADC_CHANNEL_0 (LL_ADC_CHANNEL_0) 593 #define ADC_CHANNEL_1 (LL_ADC_CHANNEL_1) 594 #define ADC_CHANNEL_2 (LL_ADC_CHANNEL_2) 595 #define ADC_CHANNEL_3 (LL_ADC_CHANNEL_3) 596 #define ADC_CHANNEL_4 (LL_ADC_CHANNEL_4) 597 #define ADC_CHANNEL_5 (LL_ADC_CHANNEL_5) 598 #define ADC_CHANNEL_6 (LL_ADC_CHANNEL_6) 599 #define ADC_CHANNEL_7 (LL_ADC_CHANNEL_7) 600 #define ADC_CHANNEL_8 (LL_ADC_CHANNEL_8) 601 #define ADC_CHANNEL_9 (LL_ADC_CHANNEL_9) 602 #define ADC_CHANNEL_10 (LL_ADC_CHANNEL_10) 603 #define ADC_CHANNEL_11 (LL_ADC_CHANNEL_11) 604 #define ADC_CHANNEL_12 (LL_ADC_CHANNEL_12) 605 #define ADC_CHANNEL_13 (LL_ADC_CHANNEL_13) 606 #define ADC_CHANNEL_14 (LL_ADC_CHANNEL_14) 607 #define ADC_CHANNEL_15 (LL_ADC_CHANNEL_15) 608 #define ADC_CHANNEL_16 (LL_ADC_CHANNEL_16) 609 #define ADC_CHANNEL_17 (LL_ADC_CHANNEL_17) 610 #define ADC_CHANNEL_18 (LL_ADC_CHANNEL_18) 611 #define ADC_CHANNEL_VREFINT (LL_ADC_CHANNEL_VREFINT) 612 #define ADC_CHANNEL_TEMPSENSOR (LL_ADC_CHANNEL_TEMPSENSOR) 613 #define ADC_CHANNEL_VBAT (LL_ADC_CHANNEL_VBAT) 614 #if defined(ADC1) && !defined(ADC2) 615 #define ADC_CHANNEL_DAC1CH1 (LL_ADC_CHANNEL_DAC1CH1) 616 #define ADC_CHANNEL_DAC1CH2 (LL_ADC_CHANNEL_DAC1CH2) 618 #define ADC_CHANNEL_DAC1CH1_ADC2 (LL_ADC_CHANNEL_DAC1CH1_ADC2) 619 #define ADC_CHANNEL_DAC1CH2_ADC2 (LL_ADC_CHANNEL_DAC1CH2_ADC2) 621 #define ADC_CHANNEL_DAC1CH1_ADC3 (LL_ADC_CHANNEL_DAC1CH1_ADC3) 622 #define ADC_CHANNEL_DAC1CH2_ADC3 (LL_ADC_CHANNEL_DAC1CH2_ADC3) 632 #define ADC_ANALOGWATCHDOG_1 (LL_ADC_AWD1) 633 #define ADC_ANALOGWATCHDOG_2 (LL_ADC_AWD2) 634 #define ADC_ANALOGWATCHDOG_3 (LL_ADC_AWD3) 642 #define ADC_ANALOGWATCHDOG_NONE (0x00000000UL) 643 #define ADC_ANALOGWATCHDOG_SINGLE_REG (ADC_CFGR_AWD1SGL | ADC_CFGR_AWD1EN) 644 #define ADC_ANALOGWATCHDOG_SINGLE_INJEC (ADC_CFGR_AWD1SGL | ADC_CFGR_JAWD1EN) 645 #define ADC_ANALOGWATCHDOG_SINGLE_REGINJEC (ADC_CFGR_AWD1SGL | ADC_CFGR_AWD1EN | ADC_CFGR_JAWD1EN) 646 #define ADC_ANALOGWATCHDOG_ALL_REG (ADC_CFGR_AWD1EN) 647 #define ADC_ANALOGWATCHDOG_ALL_INJEC (ADC_CFGR_JAWD1EN) 648 #define ADC_ANALOGWATCHDOG_ALL_REGINJEC (ADC_CFGR_AWD1EN | ADC_CFGR_JAWD1EN) 656 #define ADC_OVERSAMPLING_RATIO_2 (LL_ADC_OVS_RATIO_2) 657 #define ADC_OVERSAMPLING_RATIO_4 (LL_ADC_OVS_RATIO_4) 658 #define ADC_OVERSAMPLING_RATIO_8 (LL_ADC_OVS_RATIO_8) 659 #define ADC_OVERSAMPLING_RATIO_16 (LL_ADC_OVS_RATIO_16) 660 #define ADC_OVERSAMPLING_RATIO_32 (LL_ADC_OVS_RATIO_32) 661 #define ADC_OVERSAMPLING_RATIO_64 (LL_ADC_OVS_RATIO_64) 662 #define ADC_OVERSAMPLING_RATIO_128 (LL_ADC_OVS_RATIO_128) 663 #define ADC_OVERSAMPLING_RATIO_256 (LL_ADC_OVS_RATIO_256) 671 #define ADC_RIGHTBITSHIFT_NONE (LL_ADC_OVS_SHIFT_NONE) 672 #define ADC_RIGHTBITSHIFT_1 (LL_ADC_OVS_SHIFT_RIGHT_1) 673 #define ADC_RIGHTBITSHIFT_2 (LL_ADC_OVS_SHIFT_RIGHT_2) 674 #define ADC_RIGHTBITSHIFT_3 (LL_ADC_OVS_SHIFT_RIGHT_3) 675 #define ADC_RIGHTBITSHIFT_4 (LL_ADC_OVS_SHIFT_RIGHT_4) 676 #define ADC_RIGHTBITSHIFT_5 (LL_ADC_OVS_SHIFT_RIGHT_5) 677 #define ADC_RIGHTBITSHIFT_6 (LL_ADC_OVS_SHIFT_RIGHT_6) 678 #define ADC_RIGHTBITSHIFT_7 (LL_ADC_OVS_SHIFT_RIGHT_7) 679 #define ADC_RIGHTBITSHIFT_8 (LL_ADC_OVS_SHIFT_RIGHT_8) 687 #define ADC_TRIGGEREDMODE_SINGLE_TRIGGER (LL_ADC_OVS_REG_CONT) 688 #define ADC_TRIGGEREDMODE_MULTI_TRIGGER (LL_ADC_OVS_REG_DISCONT) 696 #define ADC_REGOVERSAMPLING_CONTINUED_MODE (LL_ADC_OVS_GRP_REGULAR_CONTINUED) 697 #define ADC_REGOVERSAMPLING_RESUMED_MODE (LL_ADC_OVS_GRP_REGULAR_RESUMED) 706 #define ADC_EOSMP_EVENT (ADC_FLAG_EOSMP) 707 #define ADC_AWD1_EVENT (ADC_FLAG_AWD1) 708 #define ADC_AWD2_EVENT (ADC_FLAG_AWD2) 709 #define ADC_AWD3_EVENT (ADC_FLAG_AWD3) 710 #define ADC_OVR_EVENT (ADC_FLAG_OVR) 711 #define ADC_JQOVF_EVENT (ADC_FLAG_JQOVF) 715 #define ADC_AWD_EVENT ADC_AWD1_EVENT 720 #define ADC_IT_RDY ADC_IER_ADRDYIE 721 #define ADC_IT_EOSMP ADC_IER_EOSMPIE 722 #define ADC_IT_EOC ADC_IER_EOCIE 723 #define ADC_IT_EOS ADC_IER_EOSIE 724 #define ADC_IT_OVR ADC_IER_OVRIE 725 #define ADC_IT_JEOC ADC_IER_JEOCIE 726 #define ADC_IT_JEOS ADC_IER_JEOSIE 727 #define ADC_IT_AWD1 ADC_IER_AWD1IE 728 #define ADC_IT_AWD2 ADC_IER_AWD2IE 729 #define ADC_IT_AWD3 ADC_IER_AWD3IE 730 #define ADC_IT_JQOVF ADC_IER_JQOVFIE 732 #define ADC_IT_AWD ADC_IT_AWD1 741 #define ADC_FLAG_RDY ADC_ISR_ADRDY 742 #define ADC_FLAG_EOSMP ADC_ISR_EOSMP 743 #define ADC_FLAG_EOC ADC_ISR_EOC 744 #define ADC_FLAG_EOS ADC_ISR_EOS 745 #define ADC_FLAG_OVR ADC_ISR_OVR 746 #define ADC_FLAG_JEOC ADC_ISR_JEOC 747 #define ADC_FLAG_JEOS ADC_ISR_JEOS 748 #define ADC_FLAG_AWD1 ADC_ISR_AWD1 749 #define ADC_FLAG_AWD2 ADC_ISR_AWD2 750 #define ADC_FLAG_AWD3 ADC_ISR_AWD3 751 #define ADC_FLAG_JQOVF ADC_ISR_JQOVF 753 #define ADC_FLAG_AWD ADC_FLAG_AWD1 755 #define ADC_FLAG_ALL (ADC_FLAG_RDY | ADC_FLAG_EOSMP | ADC_FLAG_EOC | ADC_FLAG_EOS | \ 756 ADC_FLAG_JEOC | ADC_FLAG_JEOS | ADC_FLAG_OVR | ADC_FLAG_AWD1 | \ 757 ADC_FLAG_AWD2 | ADC_FLAG_AWD3 | ADC_FLAG_JQOVF) 760 #define ADC_FLAG_POSTCONV_ALL (ADC_FLAG_EOC | ADC_FLAG_EOS | ADC_FLAG_JEOC | ADC_FLAG_JEOS | \ 761 ADC_FLAG_OVR | ADC_FLAG_AWD1 | ADC_FLAG_AWD2 | ADC_FLAG_AWD3 | \ 785 #define ADC_GET_RESOLUTION(__HANDLE__) \ 786 (LL_ADC_GetResolution((__HANDLE__)->Instance)) 793 #define ADC_CLEAR_ERRORCODE(__HANDLE__) ((__HANDLE__)->ErrorCode = HAL_ADC_ERROR_NONE) 800 #define ADC_IS_ENABLE(__HANDLE__) \ 801 (( ((((__HANDLE__)->Instance->CR) & (ADC_CR_ADEN | ADC_CR_ADDIS)) == ADC_CR_ADEN) && \ 802 ((((__HANDLE__)->Instance->ISR) & ADC_FLAG_RDY) == ADC_FLAG_RDY) \ 810 #define ADC_IS_CONVERSION_ONGOING_REGULAR(__HANDLE__) \ 811 (LL_ADC_REG_IsConversionOngoing((__HANDLE__)->Instance)) 820 #define ADC_STATE_CLR_SET MODIFY_REG 828 #define IS_ADC_RANGE(__RESOLUTION__, __ADC_VALUE__) \ 829 ((__ADC_VALUE__) <= __LL_ADC_DIGITAL_SCALE(__RESOLUTION__)) 836 #define IS_ADC_REGULAR_NB_CONV(__LENGTH__) (((__LENGTH__) >= (1UL)) && ((__LENGTH__) <= (16UL))) 844 #define IS_ADC_REGULAR_DISCONT_NUMBER(NUMBER) (((NUMBER) >= (1UL)) && ((NUMBER) <= (8UL))) 852 #define IS_ADC_CLOCKPRESCALER(__ADC_CLOCK__) (((__ADC_CLOCK__) == ADC_CLOCK_SYNC_PCLK_DIV1) || \ 853 ((__ADC_CLOCK__) == ADC_CLOCK_SYNC_PCLK_DIV2) || \ 854 ((__ADC_CLOCK__) == ADC_CLOCK_SYNC_PCLK_DIV4) || \ 855 ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV1) || \ 856 ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV2) || \ 857 ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV4) || \ 858 ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV6) || \ 859 ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV8) || \ 860 ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV10) || \ 861 ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV12) || \ 862 ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV16) || \ 863 ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV32) || \ 864 ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV64) || \ 865 ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV128) || \ 866 ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV256) ) 873 #define IS_ADC_RESOLUTION(__RESOLUTION__) (((__RESOLUTION__) == ADC_RESOLUTION_12B) || \ 874 ((__RESOLUTION__) == ADC_RESOLUTION_10B) || \ 875 ((__RESOLUTION__) == ADC_RESOLUTION_8B) || \ 876 ((__RESOLUTION__) == ADC_RESOLUTION_6B) ) 883 #define IS_ADC_RESOLUTION_8_6_BITS(__RESOLUTION__) (((__RESOLUTION__) == ADC_RESOLUTION_8B) || \ 884 ((__RESOLUTION__) == ADC_RESOLUTION_6B) ) 891 #define IS_ADC_DATA_ALIGN(__ALIGN__) (((__ALIGN__) == ADC_DATAALIGN_RIGHT) || \ 892 ((__ALIGN__) == ADC_DATAALIGN_LEFT) ) 899 #define IS_ADC_SCAN_MODE(__SCAN_MODE__) (((__SCAN_MODE__) == ADC_SCAN_DISABLE) || \ 900 ((__SCAN_MODE__) == ADC_SCAN_ENABLE) ) 907 #define IS_ADC_EXTTRIG_EDGE(__EDGE__) (((__EDGE__) == ADC_EXTERNALTRIGCONVEDGE_NONE) || \ 908 ((__EDGE__) == ADC_EXTERNALTRIGCONVEDGE_RISING) || \ 909 ((__EDGE__) == ADC_EXTERNALTRIGCONVEDGE_FALLING) || \ 910 ((__EDGE__) == ADC_EXTERNALTRIGCONVEDGE_RISINGFALLING) ) 918 #define IS_ADC_EXTTRIG(__HANDLE__, __REGTRIG__) (((__REGTRIG__) == ADC_EXTERNALTRIG_T1_CC1) || \ 919 ((__REGTRIG__) == ADC_EXTERNALTRIG_T1_CC2) || \ 920 ((__REGTRIG__) == ADC_EXTERNALTRIG_T1_CC3) || \ 921 ((__REGTRIG__) == ADC_EXTERNALTRIG_T2_CC2) || \ 922 ((__REGTRIG__) == ADC_EXTERNALTRIG_T3_TRGO) || \ 923 ((__REGTRIG__) == ADC_EXTERNALTRIG_T4_CC4) || \ 924 ((__REGTRIG__) == ADC_EXTERNALTRIG_EXT_IT11) || \ 925 ((__REGTRIG__) == ADC_EXTERNALTRIG_T8_TRGO) || \ 926 ((__REGTRIG__) == ADC_EXTERNALTRIG_T8_TRGO2) || \ 927 ((__REGTRIG__) == ADC_EXTERNALTRIG_T1_TRGO) || \ 928 ((__REGTRIG__) == ADC_EXTERNALTRIG_T1_TRGO2) || \ 929 ((__REGTRIG__) == ADC_EXTERNALTRIG_T2_TRGO) || \ 930 ((__REGTRIG__) == ADC_EXTERNALTRIG_T4_TRGO) || \ 931 ((__REGTRIG__) == ADC_EXTERNALTRIG_T6_TRGO) || \ 932 ((__REGTRIG__) == ADC_EXTERNALTRIG_T15_TRGO) || \ 933 ((__REGTRIG__) == ADC_EXTERNALTRIG_T3_CC4) || \ 934 ((__REGTRIG__) == ADC_SOFTWARE_START) ) 941 #define IS_ADC_EOC_SELECTION(__EOC_SELECTION__) (((__EOC_SELECTION__) == ADC_EOC_SINGLE_CONV) || \ 942 ((__EOC_SELECTION__) == ADC_EOC_SEQ_CONV) ) 949 #define IS_ADC_OVERRUN(__OVR__) (((__OVR__) == ADC_OVR_DATA_PRESERVED) || \ 950 ((__OVR__) == ADC_OVR_DATA_OVERWRITTEN) ) 957 #if defined(ADC_SMPR1_SMPPLUS) 958 #define IS_ADC_SAMPLE_TIME(__TIME__) (((__TIME__) == ADC_SAMPLETIME_2CYCLES_5) || \ 959 ((__TIME__) == ADC_SAMPLETIME_3CYCLES_5) || \ 960 ((__TIME__) == ADC_SAMPLETIME_6CYCLES_5) || \ 961 ((__TIME__) == ADC_SAMPLETIME_12CYCLES_5) || \ 962 ((__TIME__) == ADC_SAMPLETIME_24CYCLES_5) || \ 963 ((__TIME__) == ADC_SAMPLETIME_47CYCLES_5) || \ 964 ((__TIME__) == ADC_SAMPLETIME_92CYCLES_5) || \ 965 ((__TIME__) == ADC_SAMPLETIME_247CYCLES_5) || \ 966 ((__TIME__) == ADC_SAMPLETIME_640CYCLES_5) ) 968 #define IS_ADC_SAMPLE_TIME(__TIME__) (((__TIME__) == ADC_SAMPLETIME_2CYCLES_5) || \ 969 ((__TIME__) == ADC_SAMPLETIME_6CYCLES_5) || \ 970 ((__TIME__) == ADC_SAMPLETIME_12CYCLES_5) || \ 971 ((__TIME__) == ADC_SAMPLETIME_24CYCLES_5) || \ 972 ((__TIME__) == ADC_SAMPLETIME_47CYCLES_5) || \ 973 ((__TIME__) == ADC_SAMPLETIME_92CYCLES_5) || \ 974 ((__TIME__) == ADC_SAMPLETIME_247CYCLES_5) || \ 975 ((__TIME__) == ADC_SAMPLETIME_640CYCLES_5) ) 983 #define IS_ADC_REGULAR_RANK(__CHANNEL__) (((__CHANNEL__) == ADC_REGULAR_RANK_1 ) || \ 984 ((__CHANNEL__) == ADC_REGULAR_RANK_2 ) || \ 985 ((__CHANNEL__) == ADC_REGULAR_RANK_3 ) || \ 986 ((__CHANNEL__) == ADC_REGULAR_RANK_4 ) || \ 987 ((__CHANNEL__) == ADC_REGULAR_RANK_5 ) || \ 988 ((__CHANNEL__) == ADC_REGULAR_RANK_6 ) || \ 989 ((__CHANNEL__) == ADC_REGULAR_RANK_7 ) || \ 990 ((__CHANNEL__) == ADC_REGULAR_RANK_8 ) || \ 991 ((__CHANNEL__) == ADC_REGULAR_RANK_9 ) || \ 992 ((__CHANNEL__) == ADC_REGULAR_RANK_10) || \ 993 ((__CHANNEL__) == ADC_REGULAR_RANK_11) || \ 994 ((__CHANNEL__) == ADC_REGULAR_RANK_12) || \ 995 ((__CHANNEL__) == ADC_REGULAR_RANK_13) || \ 996 ((__CHANNEL__) == ADC_REGULAR_RANK_14) || \ 997 ((__CHANNEL__) == ADC_REGULAR_RANK_15) || \ 998 ((__CHANNEL__) == ADC_REGULAR_RANK_16) ) 1018 #define ADC_STOP_CONVERSION_TIMEOUT ( 5UL) 1023 #define ADC_TEMPSENSOR_DELAY_US (LL_ADC_DELAY_TEMPSENSOR_STAB_US) 1045 #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) 1046 #define __HAL_ADC_RESET_HANDLE_STATE(__HANDLE__) \ 1048 (__HANDLE__)->State = HAL_ADC_STATE_RESET; \ 1049 (__HANDLE__)->MspInitCallback = NULL; \ 1050 (__HANDLE__)->MspDeInitCallback = NULL; \ 1053 #define __HAL_ADC_RESET_HANDLE_STATE(__HANDLE__) \ 1054 ((__HANDLE__)->State = HAL_ADC_STATE_RESET) 1075 #define __HAL_ADC_ENABLE_IT(__HANDLE__, __INTERRUPT__) \ 1076 (((__HANDLE__)->Instance->IER) |= (__INTERRUPT__)) 1096 #define __HAL_ADC_DISABLE_IT(__HANDLE__, __INTERRUPT__) \ 1097 (((__HANDLE__)->Instance->IER) &= ~(__INTERRUPT__)) 1116 #define __HAL_ADC_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) \ 1117 (((__HANDLE__)->Instance->IER & (__INTERRUPT__)) == (__INTERRUPT__)) 1137 #define __HAL_ADC_GET_FLAG(__HANDLE__, __FLAG__) \ 1138 ((((__HANDLE__)->Instance->ISR) & (__FLAG__)) == (__FLAG__)) 1159 #define __HAL_ADC_CLEAR_FLAG(__HANDLE__, __FLAG__) \ 1160 (((__HANDLE__)->Instance->ISR) = (__FLAG__)) 1219 #define __HAL_ADC_CHANNEL_TO_DECIMAL_NB(__CHANNEL__) \ 1220 __LL_ADC_CHANNEL_TO_DECIMAL_NB((__CHANNEL__)) 1271 #define __HAL_ADC_DECIMAL_NB_TO_CHANNEL(__DECIMAL_NB__) \ 1272 __LL_ADC_DECIMAL_NB_TO_CHANNEL((__DECIMAL_NB__)) 1332 #define __HAL_ADC_IS_CHANNEL_INTERNAL(__CHANNEL__) \ 1333 __LL_ADC_IS_CHANNEL_INTERNAL((__CHANNEL__)) 1407 #define __HAL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(__CHANNEL__) \ 1408 __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL((__CHANNEL__)) 1444 #define __HAL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \ 1445 __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE((__ADC_INSTANCE__), (__CHANNEL__)) 1447 #if defined(ADC_MULTIMODE_SUPPORT) 1461 #define __HAL_ADC_MULTI_CONV_DATA_MASTER_SLAVE(__ADC_MULTI_MASTER_SLAVE__, __ADC_MULTI_CONV_DATA__) \ 1462 __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE((__ADC_MULTI_MASTER_SLAVE__), (__ADC_MULTI_CONV_DATA__)) 1475 #define __HAL_ADC_COMMON_INSTANCE(__ADCx__) \ 1476 __LL_ADC_COMMON_INSTANCE((__ADCx__)) 1495 #define __HAL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__ADCXY_COMMON__) \ 1496 __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE((__ADCXY_COMMON__)) 1511 #define __HAL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__) \ 1512 __LL_ADC_DIGITAL_SCALE((__ADC_RESOLUTION__)) 1532 #define __HAL_ADC_CONVERT_DATA_RESOLUTION(__DATA__,\ 1533 __ADC_RESOLUTION_CURRENT__,\ 1534 __ADC_RESOLUTION_TARGET__) \ 1535 __LL_ADC_CONVERT_DATA_RESOLUTION((__DATA__), \ 1536 (__ADC_RESOLUTION_CURRENT__), \ 1537 (__ADC_RESOLUTION_TARGET__)) 1555 #define __HAL_ADC_CALC_DATA_TO_VOLTAGE(__VREFANALOG_VOLTAGE__,\ 1557 __ADC_RESOLUTION__) \ 1558 __LL_ADC_CALC_DATA_TO_VOLTAGE((__VREFANALOG_VOLTAGE__), \ 1560 (__ADC_RESOLUTION__)) 1587 #define __HAL_ADC_CALC_VREFANALOG_VOLTAGE(__VREFINT_ADC_DATA__,\ 1588 __ADC_RESOLUTION__) \ 1589 __LL_ADC_CALC_VREFANALOG_VOLTAGE((__VREFINT_ADC_DATA__), \ 1590 (__ADC_RESOLUTION__)) 1637 #define __HAL_ADC_CALC_TEMPERATURE(__VREFANALOG_VOLTAGE__,\ 1638 __TEMPSENSOR_ADC_DATA__,\ 1639 __ADC_RESOLUTION__) \ 1640 __LL_ADC_CALC_TEMPERATURE((__VREFANALOG_VOLTAGE__), \ 1641 (__TEMPSENSOR_ADC_DATA__), \ 1642 (__ADC_RESOLUTION__)) 1688 #define __HAL_ADC_CALC_TEMPERATURE_TYP_PARAMS(__TEMPSENSOR_TYP_AVGSLOPE__,\ 1689 __TEMPSENSOR_TYP_CALX_V__,\ 1690 __TEMPSENSOR_CALX_TEMP__,\ 1691 __VREFANALOG_VOLTAGE__,\ 1692 __TEMPSENSOR_ADC_DATA__,\ 1693 __ADC_RESOLUTION__) \ 1694 __LL_ADC_CALC_TEMPERATURE_TYP_PARAMS((__TEMPSENSOR_TYP_AVGSLOPE__), \ 1695 (__TEMPSENSOR_TYP_CALX_V__), \ 1696 (__TEMPSENSOR_CALX_TEMP__), \ 1697 (__VREFANALOG_VOLTAGE__), \ 1698 (__TEMPSENSOR_ADC_DATA__), \ 1699 (__ADC_RESOLUTION__)) 1727 #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) HAL_StatusTypeDef HAL_ADC_Stop_IT(ADC_HandleTypeDef *hadc)
Stop ADC conversion of regular group (and injected group in case of auto_injection mode)...
ADC_OversamplingTypeDef Oversampling
HAL_StatusTypeDef HAL_ADC_PollForConversion(ADC_HandleTypeDef *hadc, uint32_t Timeout)
Wait for regular group conversion to be completed.
HAL_StatusTypeDef HAL_ADC_AnalogWDGConfig(ADC_HandleTypeDef *hadc, ADC_AnalogWDGConfTypeDef *AnalogWDGConfig)
Configure the analog watchdog.
uint32_t ExternalTrigConv
uint32_t OversamplingStopReset
DMA handle Structure definition.
void HAL_ADC_IRQHandler(ADC_HandleTypeDef *hadc)
Handle ADC interrupt request.
Header file of ADC LL module.
Structure definition of ADC channel for regular group.
HAL_ADC_CallbackIDTypeDef
HAL ADC Callback ID enumeration definition.
HAL_StatusTypeDef HAL_ADC_Init(ADC_HandleTypeDef *hadc)
Initialize the ADC peripheral and regular group according to parameters specified in structure "ADC_I...
ADC group injected contexts queue configuration.
void ADC_DMAConvCplt(DMA_HandleTypeDef *hdma)
DMA transfer complete callback.
void HAL_ADC_ErrorCallback(ADC_HandleTypeDef *hadc)
ADC error callback in non-blocking mode (ADC conversion with interruption or transfer by DMA)...
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef HAL_ADC_DeInit(ADC_HandleTypeDef *hadc)
Deinitialize the ADC peripheral registers to their default reset values, with deinitialization of the...
void HAL_ADC_MspInit(ADC_HandleTypeDef *hadc)
Initialize the ADC MSP.
void ADC_DMAError(DMA_HandleTypeDef *hdma)
DMA error callback.
uint32_t ExternalTrigConvEdge
HAL_StatusTypeDef ADC_Enable(ADC_HandleTypeDef *hadc)
Enable the selected ADC.
FunctionalState OversamplingMode
uint32_t NbrOfDiscConversion
FunctionalState DiscontinuousConvMode
HAL_StatusTypeDef HAL_ADC_Start_DMA(ADC_HandleTypeDef *hadc, uint32_t *pData, uint32_t Length)
Enable ADC, start conversion of regular group and transfer result through DMA.
struct __ADC_HandleTypeDef else typedef struct endif ADC_HandleTypeDef
ADC handle Structure definition.
HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef *hadc)
Enable ADC, start conversion of regular group.
HAL_StatusTypeDef HAL_ADC_Stop_DMA(ADC_HandleTypeDef *hadc)
Stop ADC conversion of regular group (and injected group in case of auto_injection mode)...
Structure definition of ADC instance and ADC group regular.
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc)
Conversion complete callback in non-blocking mode.
void ADC_DMAHalfConvCplt(DMA_HandleTypeDef *hdma)
DMA half transfer complete callback.
uint32_t HAL_ADC_GetError(ADC_HandleTypeDef *hadc)
Return the ADC error code.
DMA_HandleTypeDef * DMA_Handle
void(* pADC_CallbackTypeDef)(ADC_HandleTypeDef *hadc)
HAL ADC Callback pointer definition.
Structure definition of ADC analog watchdog.
FunctionalState DMAContinuousRequests
Header file of ADC HAL extended module.
ADC group regular oversampling structure definition.
FunctionalState ContinuousConvMode
HAL_StatusTypeDef HAL_ADC_Stop(ADC_HandleTypeDef *hadc)
Stop ADC conversion of regular group (and injected channels in case of auto_injection mode)...
HAL_LockTypeDef
HAL Lock structures definition.
HAL_StatusTypeDef HAL_ADC_RegisterCallback(ADC_HandleTypeDef *hadc, HAL_ADC_CallbackIDTypeDef CallbackID, pADC_CallbackTypeDef pCallback)
Register a User ADC Callback To be used instead of the weak predefined callback.
HAL_StatusTypeDef ADC_ConversionStop(ADC_HandleTypeDef *hadc, uint32_t ConversionGroup)
Stop ADC conversion.
HAL_StatusTypeDef ADC_Disable(ADC_HandleTypeDef *hadc)
Disable the selected ADC.
uint32_t HAL_ADC_GetValue(ADC_HandleTypeDef *hadc)
Get ADC regular group conversion result.
HAL_StatusTypeDef HAL_ADC_ConfigChannel(ADC_HandleTypeDef *hadc, ADC_ChannelConfTypeDef *sConfig)
Configure a channel to be assigned to ADC group regular.
ADC_InjectionConfigTypeDef InjectionConfig
uint32_t HAL_ADC_GetState(ADC_HandleTypeDef *hadc)
Return the ADC handle state.
void HAL_ADC_ConvHalfCpltCallback(ADC_HandleTypeDef *hadc)
Conversion DMA half-transfer callback in non-blocking mode.
FunctionalState LowPowerAutoWait
ADC handle Structure definition.
HAL_StatusTypeDef HAL_ADC_UnRegisterCallback(ADC_HandleTypeDef *hadc, HAL_ADC_CallbackIDTypeDef CallbackID)
Unregister a ADC Callback ADC callback is redirected to the weak predefined callback.
void HAL_ADC_LevelOutOfWindowCallback(ADC_HandleTypeDef *hadc)
Analog watchdog 1 callback in non-blocking mode.
HAL_StatusTypeDef HAL_ADC_PollForEvent(ADC_HandleTypeDef *hadc, uint32_t EventType, uint32_t Timeout)
Poll for ADC event.
HAL_StatusTypeDef HAL_ADC_Start_IT(ADC_HandleTypeDef *hadc)
Enable ADC, start conversion of regular group with interruption.
void HAL_ADC_MspDeInit(ADC_HandleTypeDef *hadc)
DeInitialize the ADC MSP.