@@ -46,18 +46,18 @@ int hal_tim_config(TIM_HandleTypeDef *tim, uint32_t t_freq) {
46
46
sConfig .MasterSlaveMode = TIM_MASTERSLAVEMODE_ENABLE;
47
47
48
48
if (tim->Instance == TIM1) {
49
- __HAL_RCC_TIM1_CLK_ENABLE ();
49
+ __HAL_RCC_TIM1_CLK_ENABLE ();
50
50
} else if (tim->Instance == TIM2) {
51
51
__HAL_RCC_TIM2_CLK_ENABLE ();
52
- } else if (tim->Instance == TIM3) {
52
+ } else if (tim->Instance == TIM3) {
53
53
__HAL_RCC_TIM3_CLK_ENABLE ();
54
- } else if (tim->Instance == TIM4) {
54
+ } else if (tim->Instance == TIM4) {
55
55
__HAL_RCC_TIM4_CLK_ENABLE ();
56
- } else if (tim->Instance == TIM5) {
56
+ } else if (tim->Instance == TIM5) {
57
57
__HAL_RCC_TIM5_CLK_ENABLE ();
58
- } else if (tim->Instance == TIM6) {
58
+ } else if (tim->Instance == TIM6) {
59
59
__HAL_RCC_TIM6_CLK_ENABLE ();
60
- }
60
+ }
61
61
62
62
// Init and config the timer.
63
63
__HAL_TIM_CLEAR_FLAG (tim, TIM_FLAG_UPDATE);
@@ -167,10 +167,22 @@ static uint32_t ADC_RANK_LUT[] = {
167
167
ADC_REGULAR_RANK_1, ADC_REGULAR_RANK_2, ADC_REGULAR_RANK_3, ADC_REGULAR_RANK_4, ADC_REGULAR_RANK_5
168
168
};
169
169
170
+ int hal_enable_dual_mode ()
171
+ {
172
+ LL_ADC_SetMultimode (__LL_ADC_COMMON_INSTANCE (ADC1), LL_ADC_MULTI_DUAL_REG_SIMULT);
173
+ return (1 );
174
+ }
175
+
176
+ int hal_disable_dual_mode ()
177
+ {
178
+ LL_ADC_SetMultimode (__LL_ADC_COMMON_INSTANCE (ADC1), LL_ADC_MULTI_INDEPENDENT);
179
+ return (1 );
180
+ }
181
+
170
182
int hal_adc_config (ADC_HandleTypeDef *adc, uint32_t resolution, uint32_t trigger, PinName *adc_pins, uint32_t n_channels) {
171
183
// Set ADC clock source.
172
184
__HAL_RCC_ADC_CONFIG (RCC_ADCCLKSOURCE_CLKP);
173
-
185
+
174
186
// Enable ADC clock
175
187
if (adc->Instance == ADC1) {
176
188
__HAL_RCC_ADC12_CLK_ENABLE ();
@@ -206,7 +218,7 @@ int hal_adc_config(ADC_HandleTypeDef *adc, uint32_t resolution, uint32_t trigger
206
218
sConfig .OffsetNumber = ADC_OFFSET_NONE;
207
219
sConfig .SingleDiff = ADC_SINGLE_ENDED;
208
220
sConfig .SamplingTime = ADC_SAMPLETIME_8CYCLES_5;
209
-
221
+
210
222
for (size_t rank=0 ; rank<n_channels; rank++) {
211
223
uint32_t function = pinmap_function (adc_pins[rank], PinMap_ADC);
212
224
uint32_t channel = STM_PIN_CHANNEL (function);
0 commit comments