Add ADC calibration for STM32F1 and F3 devices

pull/5210/head
bcostm 2017-09-28 12:49:11 +02:00
parent 4824e18a95
commit fca97146cd
2 changed files with 11 additions and 1 deletions

View File

@ -33,6 +33,7 @@
#include "mbed_wait_api.h"
#include "cmsis.h"
#include "pinmap.h"
#include "mbed_error.h"
#include "PeripheralPins.h"
int adc_inited = 0;
@ -93,7 +94,13 @@ void analogin_init(analogin_t *obj, PinName pin)
obj->handle.Init.DiscontinuousConvMode = DISABLE;
obj->handle.Init.NbrOfDiscConversion = 0;
obj->handle.Init.ExternalTrigConv = ADC_SOFTWARE_START;
HAL_ADC_Init(&obj->handle);
if (HAL_ADC_Init(&obj->handle) != HAL_OK) {
error("Cannot initialize ADC\n");
}
// Calibrate ADC
HAL_ADCEx_Calibration_Start(&obj->handle);
}
}

View File

@ -130,6 +130,9 @@ void analogin_init(analogin_t *obj, PinName pin)
if (HAL_ADC_Init(&obj->handle) != HAL_OK) {
error("Cannot initialize ADC");
}
// Calibrate ADC
HAL_ADCEx_Calibration_Start(&obj->handle, ADC_SINGLE_ENDED);
}
static inline uint16_t adc_read(analogin_t *obj)