helpfor studient
Dependents: STM32_F103-C8T6basecanblink_led
Fork of mbed-dev by
Diff: targets/TARGET_STM/TARGET_STM32L4/analogin_device.c
- Revision:
- 185:08ed48f1de7f
- Parent:
- 181:96ed750bd169
--- a/targets/TARGET_STM/TARGET_STM32L4/analogin_device.c Tue Mar 20 17:01:51 2018 +0000 +++ b/targets/TARGET_STM/TARGET_STM32L4/analogin_device.c Thu Apr 19 17:12:19 2018 +0100 @@ -105,9 +105,16 @@ ADC_ChannelConfTypeDef sConfig = {0}; // Configure ADC channel + sConfig.Rank = ADC_REGULAR_RANK_1; + sConfig.SamplingTime = ADC_SAMPLETIME_47CYCLES_5; // default value (1.5 us for 80MHz clock) + sConfig.SingleDiff = ADC_SINGLE_ENDED; + sConfig.OffsetNumber = ADC_OFFSET_NONE; + sConfig.Offset = 0; + switch (obj->channel) { case 0: sConfig.Channel = ADC_CHANNEL_VREFINT; + sConfig.SamplingTime = ADC_SAMPLETIME_247CYCLES_5; // Minimum ADC sampling time when reading the internal reference voltage is 4us break; case 1: sConfig.Channel = ADC_CHANNEL_1; @@ -159,20 +166,16 @@ break; case 17: sConfig.Channel = ADC_CHANNEL_TEMPSENSOR; + sConfig.SamplingTime = ADC_SAMPLETIME_247CYCLES_5; // Minimum ADC sampling time when reading the temperature is 5us break; case 18: sConfig.Channel = ADC_CHANNEL_VBAT; + sConfig.SamplingTime = ADC_SAMPLETIME_640CYCLES_5; // Minimum ADC sampling time when reading the VBAT is 12us break; default: return 0; } - sConfig.Rank = ADC_REGULAR_RANK_1; - sConfig.SamplingTime = ADC_SAMPLETIME_47CYCLES_5; - sConfig.SingleDiff = ADC_SINGLE_ENDED; - sConfig.OffsetNumber = ADC_OFFSET_NONE; - sConfig.Offset = 0; - HAL_ADC_ConfigChannel(&obj->handle, &sConfig); HAL_ADC_Start(&obj->handle); // Start conversion