File tree Expand file tree Collapse file tree 1 file changed +9
-6
lines changed
targets/TARGET_STM/TARGET_STM32L4 Expand file tree Collapse file tree 1 file changed +9
-6
lines changed Original file line number Diff line number Diff line change @@ -105,9 +105,16 @@ uint16_t adc_read(analogin_t *obj)
105
105
ADC_ChannelConfTypeDef sConfig = {0 };
106
106
107
107
// Configure ADC channel
108
+ sConfig .Rank = ADC_REGULAR_RANK_1 ;
109
+ sConfig .SamplingTime = ADC_SAMPLETIME_47CYCLES_5 ; // default value (1.5 us for 80MHz clock)
110
+ sConfig .SingleDiff = ADC_SINGLE_ENDED ;
111
+ sConfig .OffsetNumber = ADC_OFFSET_NONE ;
112
+ sConfig .Offset = 0 ;
113
+
108
114
switch (obj -> channel ) {
109
115
case 0 :
110
116
sConfig .Channel = ADC_CHANNEL_VREFINT ;
117
+ sConfig .SamplingTime = ADC_SAMPLETIME_247CYCLES_5 ; // Minimum ADC sampling time when reading the internal reference voltage is 4us
111
118
break ;
112
119
case 1 :
113
120
sConfig .Channel = ADC_CHANNEL_1 ;
@@ -159,20 +166,16 @@ uint16_t adc_read(analogin_t *obj)
159
166
break ;
160
167
case 17 :
161
168
sConfig .Channel = ADC_CHANNEL_TEMPSENSOR ;
169
+ sConfig .SamplingTime = ADC_SAMPLETIME_247CYCLES_5 ; // Minimum ADC sampling time when reading the temperature is 5us
162
170
break ;
163
171
case 18 :
164
172
sConfig .Channel = ADC_CHANNEL_VBAT ;
173
+ sConfig .SamplingTime = ADC_SAMPLETIME_640CYCLES_5 ; // Minimum ADC sampling time when reading the VBAT is 12us
165
174
break ;
166
175
default :
167
176
return 0 ;
168
177
}
169
178
170
- sConfig .Rank = ADC_REGULAR_RANK_1 ;
171
- sConfig .SamplingTime = ADC_SAMPLETIME_47CYCLES_5 ;
172
- sConfig .SingleDiff = ADC_SINGLE_ENDED ;
173
- sConfig .OffsetNumber = ADC_OFFSET_NONE ;
174
- sConfig .Offset = 0 ;
175
-
176
179
HAL_ADC_ConfigChannel (& obj -> handle , & sConfig );
177
180
178
181
HAL_ADC_Start (& obj -> handle ); // Start conversion
You can’t perform that action at this time.
0 commit comments