Merge pull request #10143 from jeromecoutant/PR_ADC_RESETINTERNAL

STM32 ADC INTERNAL CHANNEL reset after read
pull/10296/head
Martin Kojtal 2019-04-02 13:02:14 +02:00 committed by GitHub
commit 2a694cf1d9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 42 additions and 35 deletions

View File

@ -175,11 +175,12 @@ uint16_t adc_read(analogin_t *obj)
HAL_ADC_Start(&obj->handle); // Start conversion
// Wait end of conversion and get value
uint16_t adcValue = 0;
if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) {
return (uint16_t)HAL_ADC_GetValue(&obj->handle);
} else {
return 0;
adcValue = (uint16_t)HAL_ADC_GetValue(&obj->handle);
}
LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE((&obj->handle)->Instance), LL_ADC_PATH_INTERNAL_NONE);
return adcValue;
}
const PinMap *analogin_pinmap()

View File

@ -173,11 +173,12 @@ uint16_t adc_read(analogin_t *obj)
HAL_ADC_Start(&obj->handle); // Start conversion
// Wait end of conversion and get value
uint16_t adcValue = 0;
if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) {
return (uint16_t)HAL_ADC_GetValue(&obj->handle);
} else {
return 0;
adcValue = (uint16_t)HAL_ADC_GetValue(&obj->handle);
}
LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE((&obj->handle)->Instance), LL_ADC_PATH_INTERNAL_NONE);
return adcValue;
}
const PinMap *analogin_pinmap()

View File

@ -43,6 +43,10 @@
/* Includes ------------------------------------------------------------------*/
#include "stm32f1xx_hal_def.h"
/* Include low level driver */
#include "stm32f1xx_ll_adc.h"
/** @addtogroup STM32F1xx_HAL_Driver
* @{
*/

View File

@ -180,11 +180,12 @@ uint16_t adc_read(analogin_t *obj)
HAL_ADC_Start(&obj->handle); // Start conversion
// Wait end of conversion and get value
uint16_t adcValue = 0;
if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) {
return (uint16_t)HAL_ADC_GetValue(&obj->handle);
} else {
return 0;
adcValue = (uint16_t)HAL_ADC_GetValue(&obj->handle);
}
LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE((&obj->handle)->Instance), LL_ADC_PATH_INTERNAL_NONE);
return adcValue;
}
const PinMap *analogin_pinmap()

View File

@ -46,6 +46,9 @@
/* Includes ------------------------------------------------------------------*/
#include "stm32f2xx_hal_def.h"
/* Include low level driver */
#include "stm32f2xx_ll_adc.h"
/** @addtogroup STM32F2xx_HAL_Driver
* @{
*/

View File

@ -227,7 +227,7 @@ uint16_t adc_read(analogin_t *obj)
} else {
debug("HAL_ADC_PollForConversion issue\n");
}
LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE((&obj->handle)->Instance), LL_ADC_PATH_INTERNAL_NONE);
if (HAL_ADC_Stop(&obj->handle) != HAL_OK) {
debug("HAL_ADC_Stop issue\n");;
}

View File

@ -186,11 +186,12 @@ uint16_t adc_read(analogin_t *obj)
HAL_ADC_Start(&obj->handle); // Start conversion
// Wait end of conversion and get value
uint16_t adcValue = 0;
if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) {
return (uint16_t)HAL_ADC_GetValue(&obj->handle);
} else {
return 0;
adcValue = (uint16_t)HAL_ADC_GetValue(&obj->handle);
}
LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE((&obj->handle)->Instance), LL_ADC_PATH_INTERNAL_NONE);
return adcValue;
}
const PinMap *analogin_pinmap()

View File

@ -186,11 +186,12 @@ uint16_t adc_read(analogin_t *obj)
HAL_ADC_Start(&obj->handle); // Start conversion
// Wait end of conversion and get value
uint16_t adcValue = 0;
if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) {
return (uint16_t)HAL_ADC_GetValue(&obj->handle);
} else {
return 0;
adcValue = (uint16_t)HAL_ADC_GetValue(&obj->handle);
}
LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE((&obj->handle)->Instance), LL_ADC_PATH_INTERNAL_NONE);
return adcValue;
}
const PinMap *analogin_pinmap()

View File

@ -223,11 +223,12 @@ uint16_t adc_read(analogin_t *obj)
HAL_ADC_Start(&obj->handle); // Start conversion
// Wait end of conversion and get value
uint16_t adcValue = 0;
if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) {
return (uint16_t)HAL_ADC_GetValue(&obj->handle);
} else {
return 0;
adcValue = (uint16_t)HAL_ADC_GetValue(&obj->handle);
}
LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE((&obj->handle)->Instance), LL_ADC_PATH_INTERNAL_NONE);
return adcValue;
}
const PinMap *analogin_pinmap()

View File

@ -179,9 +179,8 @@ uint16_t adc_read(analogin_t *obj)
if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) {
adcValue = (uint16_t)HAL_ADC_GetValue(&obj->handle);
}
sConfig.Rank = ADC_RANK_NONE;
HAL_ADC_ConfigChannel(&obj->handle, &sConfig);
return adcValue;
LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE((&obj->handle)->Instance), LL_ADC_PATH_INTERNAL_NONE);
return adcValue;
}
const PinMap *analogin_pinmap()

View File

@ -226,11 +226,12 @@ uint16_t adc_read(analogin_t *obj)
HAL_ADC_Start(&obj->handle); // Start conversion
// Wait end of conversion and get value
uint16_t adcValue = 0;
if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) {
return (uint16_t)HAL_ADC_GetValue(&obj->handle);
} else {
return 0;
adcValue = (uint16_t)HAL_ADC_GetValue(&obj->handle);
}
LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE((&obj->handle)->Instance), LL_ADC_PATH_INTERNAL_NONE);
return adcValue;
}
const PinMap *analogin_pinmap()

View File

@ -192,18 +192,12 @@ uint16_t adc_read(analogin_t *obj)
HAL_ADC_Start(&obj->handle); // Start conversion
// Wait end of conversion and get value
uint16_t adcValue = 0;
if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) {
/* Ref Manual: To prevent any unwanted consumption on the battery,
it is recommended to enable the bridge divider only when needed for ADC conversion */
if (sConfig.Channel == ADC_CHANNEL_VBAT) {
CLEAR_BIT(__LL_ADC_COMMON_INSTANCE(obj->handle.Instance)->CCR, LL_ADC_PATH_INTERNAL_VBAT);
}
return (uint16_t)HAL_ADC_GetValue(&obj->handle);
} else {
return 0;
adcValue = (uint16_t)HAL_ADC_GetValue(&obj->handle);
}
LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE((&obj->handle)->Instance), LL_ADC_PATH_INTERNAL_NONE);
return adcValue;
}
const PinMap *analogin_pinmap()