@@ -33,6 +33,8 @@ static PinName g_current_pin = NC;
33
33
#ifndef ADC_SAMPLINGTIME
34
34
#if defined(ADC_SAMPLETIME_8CYCLES_5)
35
35
#define ADC_SAMPLINGTIME ADC_SAMPLETIME_8CYCLES_5;
36
+ #elif defined(ADC_SAMPLETIME_12CYCLES)
37
+ #define ADC_SAMPLINGTIME ADC_SAMPLETIME_12CYCLES;
36
38
#elif defined(ADC_SAMPLETIME_12CYCLES_5)
37
39
#define ADC_SAMPLINGTIME ADC_SAMPLETIME_12CYCLES_5;
38
40
#elif defined(ADC_SAMPLETIME_13CYCLES_5)
@@ -60,6 +62,8 @@ static PinName g_current_pin = NC;
60
62
#define ADC_SAMPLINGTIME_INTERNAL ADC_SAMPLETIME_384CYCLES
61
63
#elif defined(ADC_SAMPLETIME_810CYCLES_5)
62
64
#define ADC_SAMPLINGTIME_INTERNAL ADC_SAMPLETIME_810CYCLES_5
65
+ #elif defined(ADC_SAMPLETIME_814CYCLES)
66
+ #define ADC_SAMPLINGTIME_INTERNAL ADC_SAMPLETIME_814CYCLES
63
67
#elif defined(ADC_SAMPLETIME_640CYCLES_5)
64
68
#define ADC_SAMPLINGTIME_INTERNAL ADC_SAMPLETIME_640CYCLES_5
65
69
#elif defined(ADC_SAMPLETIME_601CYCLES_5)
@@ -176,6 +180,7 @@ static uint32_t get_adc_channel(PinName pin, uint32_t *bank)
176
180
case 23 :
177
181
channel = ADC_CHANNEL_23;
178
182
break ;
183
+ #ifdef ADC_CHANNEL_24
179
184
case 24 :
180
185
channel = ADC_CHANNEL_24;
181
186
break ;
@@ -202,6 +207,7 @@ static uint32_t get_adc_channel(PinName pin, uint32_t *bank)
202
207
channel = ADC_CHANNEL_31;
203
208
break ;
204
209
#endif
210
+ #endif
205
211
#endif
206
212
default :
207
213
channel = 0 ;
@@ -588,6 +594,9 @@ void HAL_ADC_MspInit(ADC_HandleTypeDef *hadc)
588
594
#endif
589
595
#ifdef ADC4
590
596
else if (hadc->Instance == ADC4) {
597
+ #ifdef __HAL_RCC_ADC4_CLK_ENABLE
598
+ __HAL_RCC_ADC4_CLK_ENABLE ();
599
+ #endif
591
600
#ifdef __HAL_RCC_ADC34_CLK_ENABLE
592
601
__HAL_RCC_ADC34_CLK_ENABLE ();
593
602
#endif
@@ -707,6 +716,15 @@ void HAL_ADC_MspDeInit(ADC_HandleTypeDef *hadc)
707
716
#endif
708
717
#ifdef ADC4
709
718
else if (hadc->Instance == ADC4) {
719
+ #ifdef __HAL_RCC_ADC4_FORCE_RESET
720
+ __HAL_RCC_ADC4_FORCE_RESET ();
721
+ #endif
722
+ #ifdef __HAL_RCC_ADC4_RELEASE_RESET
723
+ __HAL_RCC_ADC4_RELEASE_RESET ();
724
+ #endif
725
+ #ifdef __HAL_RCC_ADC4_CLK_DISABLE
726
+ __HAL_RCC_ADC4_CLK_DISABLE ();
727
+ #endif
710
728
#ifdef __HAL_RCC_ADC34_FORCE_RESET
711
729
__HAL_RCC_ADC34_FORCE_RESET ();
712
730
#endif
@@ -910,7 +928,7 @@ uint16_t adc_read_value(PinName pin, uint32_t resolution)
910
928
#endif /* STM32L4xx || STM32WBxx */
911
929
return 0 ;
912
930
}
913
- #ifdef ADC_SCAN_SEQ_FIXED
931
+ #if defined( ADC_SCAN_SEQ_FIXED) && defined(ADC_RANK_CHANNEL_NUMBER)
914
932
AdcChannelConf.Rank = ADC_RANK_CHANNEL_NUMBER; /* Enable the rank of the selected channels when not fully configurable */
915
933
#else
916
934
AdcChannelConf.Rank = ADC_REGULAR_RANK_1; /* Specifies the rank in the regular group sequencer */
@@ -954,7 +972,7 @@ uint16_t adc_read_value(PinName pin, uint32_t resolution)
954
972
#if defined(STM32F0xx) || defined(STM32G0xx) || defined(STM32F1xx) || \
955
973
defined (STM32WLxx) || defined (STM32F373xC) || defined (STM32F378xx)
956
974
if (HAL_ADCEx_Calibration_Start (&AdcHandle) != HAL_OK)
957
- #elif defined (STM32H7xx) || defined(STM32MP1xx)
975
+ #elif defined (STM32H7xx) || defined(STM32MP1xx) || defined(STM32U5xx)
958
976
if (HAL_ADCEx_Calibration_Start (&AdcHandle, ADC_CALIB_OFFSET, ADC_SINGLE_ENDED) != HAL_OK)
959
977
#else
960
978
if (HAL_ADCEx_Calibration_Start (&AdcHandle, ADC_SINGLE_ENDED) != HAL_OK)
@@ -967,7 +985,7 @@ uint16_t adc_read_value(PinName pin, uint32_t resolution)
967
985
968
986
/* ##-3- Start the conversion process ####################*/
969
987
if (HAL_ADC_Start (&AdcHandle) != HAL_OK) {
970
- /* Start Conversation Error */
988
+ /* Start Conversion Error */
971
989
return 0 ;
972
990
}
973
991
0 commit comments