mirror of https://github.com/ARMmbed/mbed-os.git
Merge pull request #10143 from jeromecoutant/PR_ADC_RESETINTERNAL
STM32 ADC INTERNAL CHANNEL reset after readpull/10296/head
commit
2a694cf1d9
|
@ -175,11 +175,12 @@ uint16_t adc_read(analogin_t *obj)
|
||||||
HAL_ADC_Start(&obj->handle); // Start conversion
|
HAL_ADC_Start(&obj->handle); // Start conversion
|
||||||
|
|
||||||
// Wait end of conversion and get value
|
// Wait end of conversion and get value
|
||||||
|
uint16_t adcValue = 0;
|
||||||
if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) {
|
if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) {
|
||||||
return (uint16_t)HAL_ADC_GetValue(&obj->handle);
|
adcValue = (uint16_t)HAL_ADC_GetValue(&obj->handle);
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE((&obj->handle)->Instance), LL_ADC_PATH_INTERNAL_NONE);
|
||||||
|
return adcValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
const PinMap *analogin_pinmap()
|
const PinMap *analogin_pinmap()
|
||||||
|
|
|
@ -173,11 +173,12 @@ uint16_t adc_read(analogin_t *obj)
|
||||||
HAL_ADC_Start(&obj->handle); // Start conversion
|
HAL_ADC_Start(&obj->handle); // Start conversion
|
||||||
|
|
||||||
// Wait end of conversion and get value
|
// Wait end of conversion and get value
|
||||||
|
uint16_t adcValue = 0;
|
||||||
if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) {
|
if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) {
|
||||||
return (uint16_t)HAL_ADC_GetValue(&obj->handle);
|
adcValue = (uint16_t)HAL_ADC_GetValue(&obj->handle);
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE((&obj->handle)->Instance), LL_ADC_PATH_INTERNAL_NONE);
|
||||||
|
return adcValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
const PinMap *analogin_pinmap()
|
const PinMap *analogin_pinmap()
|
||||||
|
|
|
@ -43,6 +43,10 @@
|
||||||
|
|
||||||
/* Includes ------------------------------------------------------------------*/
|
/* Includes ------------------------------------------------------------------*/
|
||||||
#include "stm32f1xx_hal_def.h"
|
#include "stm32f1xx_hal_def.h"
|
||||||
|
|
||||||
|
/* Include low level driver */
|
||||||
|
#include "stm32f1xx_ll_adc.h"
|
||||||
|
|
||||||
/** @addtogroup STM32F1xx_HAL_Driver
|
/** @addtogroup STM32F1xx_HAL_Driver
|
||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -180,11 +180,12 @@ uint16_t adc_read(analogin_t *obj)
|
||||||
HAL_ADC_Start(&obj->handle); // Start conversion
|
HAL_ADC_Start(&obj->handle); // Start conversion
|
||||||
|
|
||||||
// Wait end of conversion and get value
|
// Wait end of conversion and get value
|
||||||
|
uint16_t adcValue = 0;
|
||||||
if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) {
|
if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) {
|
||||||
return (uint16_t)HAL_ADC_GetValue(&obj->handle);
|
adcValue = (uint16_t)HAL_ADC_GetValue(&obj->handle);
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE((&obj->handle)->Instance), LL_ADC_PATH_INTERNAL_NONE);
|
||||||
|
return adcValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
const PinMap *analogin_pinmap()
|
const PinMap *analogin_pinmap()
|
||||||
|
|
|
@ -46,6 +46,9 @@
|
||||||
/* Includes ------------------------------------------------------------------*/
|
/* Includes ------------------------------------------------------------------*/
|
||||||
#include "stm32f2xx_hal_def.h"
|
#include "stm32f2xx_hal_def.h"
|
||||||
|
|
||||||
|
/* Include low level driver */
|
||||||
|
#include "stm32f2xx_ll_adc.h"
|
||||||
|
|
||||||
/** @addtogroup STM32F2xx_HAL_Driver
|
/** @addtogroup STM32F2xx_HAL_Driver
|
||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -227,7 +227,7 @@ uint16_t adc_read(analogin_t *obj)
|
||||||
} else {
|
} else {
|
||||||
debug("HAL_ADC_PollForConversion issue\n");
|
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) {
|
if (HAL_ADC_Stop(&obj->handle) != HAL_OK) {
|
||||||
debug("HAL_ADC_Stop issue\n");;
|
debug("HAL_ADC_Stop issue\n");;
|
||||||
}
|
}
|
||||||
|
|
|
@ -186,11 +186,12 @@ uint16_t adc_read(analogin_t *obj)
|
||||||
HAL_ADC_Start(&obj->handle); // Start conversion
|
HAL_ADC_Start(&obj->handle); // Start conversion
|
||||||
|
|
||||||
// Wait end of conversion and get value
|
// Wait end of conversion and get value
|
||||||
|
uint16_t adcValue = 0;
|
||||||
if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) {
|
if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) {
|
||||||
return (uint16_t)HAL_ADC_GetValue(&obj->handle);
|
adcValue = (uint16_t)HAL_ADC_GetValue(&obj->handle);
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE((&obj->handle)->Instance), LL_ADC_PATH_INTERNAL_NONE);
|
||||||
|
return adcValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
const PinMap *analogin_pinmap()
|
const PinMap *analogin_pinmap()
|
||||||
|
|
|
@ -186,11 +186,12 @@ uint16_t adc_read(analogin_t *obj)
|
||||||
HAL_ADC_Start(&obj->handle); // Start conversion
|
HAL_ADC_Start(&obj->handle); // Start conversion
|
||||||
|
|
||||||
// Wait end of conversion and get value
|
// Wait end of conversion and get value
|
||||||
|
uint16_t adcValue = 0;
|
||||||
if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) {
|
if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) {
|
||||||
return (uint16_t)HAL_ADC_GetValue(&obj->handle);
|
adcValue = (uint16_t)HAL_ADC_GetValue(&obj->handle);
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE((&obj->handle)->Instance), LL_ADC_PATH_INTERNAL_NONE);
|
||||||
|
return adcValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
const PinMap *analogin_pinmap()
|
const PinMap *analogin_pinmap()
|
||||||
|
|
|
@ -223,11 +223,12 @@ uint16_t adc_read(analogin_t *obj)
|
||||||
HAL_ADC_Start(&obj->handle); // Start conversion
|
HAL_ADC_Start(&obj->handle); // Start conversion
|
||||||
|
|
||||||
// Wait end of conversion and get value
|
// Wait end of conversion and get value
|
||||||
|
uint16_t adcValue = 0;
|
||||||
if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) {
|
if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) {
|
||||||
return (uint16_t)HAL_ADC_GetValue(&obj->handle);
|
adcValue = (uint16_t)HAL_ADC_GetValue(&obj->handle);
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE((&obj->handle)->Instance), LL_ADC_PATH_INTERNAL_NONE);
|
||||||
|
return adcValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
const PinMap *analogin_pinmap()
|
const PinMap *analogin_pinmap()
|
||||||
|
|
|
@ -179,8 +179,7 @@ uint16_t adc_read(analogin_t *obj)
|
||||||
if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) {
|
if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) {
|
||||||
adcValue = (uint16_t)HAL_ADC_GetValue(&obj->handle);
|
adcValue = (uint16_t)HAL_ADC_GetValue(&obj->handle);
|
||||||
}
|
}
|
||||||
sConfig.Rank = ADC_RANK_NONE;
|
LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE((&obj->handle)->Instance), LL_ADC_PATH_INTERNAL_NONE);
|
||||||
HAL_ADC_ConfigChannel(&obj->handle, &sConfig);
|
|
||||||
return adcValue;
|
return adcValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -226,11 +226,12 @@ uint16_t adc_read(analogin_t *obj)
|
||||||
HAL_ADC_Start(&obj->handle); // Start conversion
|
HAL_ADC_Start(&obj->handle); // Start conversion
|
||||||
|
|
||||||
// Wait end of conversion and get value
|
// Wait end of conversion and get value
|
||||||
|
uint16_t adcValue = 0;
|
||||||
if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) {
|
if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) {
|
||||||
return (uint16_t)HAL_ADC_GetValue(&obj->handle);
|
adcValue = (uint16_t)HAL_ADC_GetValue(&obj->handle);
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE((&obj->handle)->Instance), LL_ADC_PATH_INTERNAL_NONE);
|
||||||
|
return adcValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
const PinMap *analogin_pinmap()
|
const PinMap *analogin_pinmap()
|
||||||
|
|
|
@ -192,18 +192,12 @@ uint16_t adc_read(analogin_t *obj)
|
||||||
HAL_ADC_Start(&obj->handle); // Start conversion
|
HAL_ADC_Start(&obj->handle); // Start conversion
|
||||||
|
|
||||||
// Wait end of conversion and get value
|
// Wait end of conversion and get value
|
||||||
|
uint16_t adcValue = 0;
|
||||||
if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) {
|
if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) {
|
||||||
|
adcValue = (uint16_t)HAL_ADC_GetValue(&obj->handle);
|
||||||
/* 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;
|
|
||||||
}
|
}
|
||||||
|
LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE((&obj->handle)->Instance), LL_ADC_PATH_INTERNAL_NONE);
|
||||||
|
return adcValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
const PinMap *analogin_pinmap()
|
const PinMap *analogin_pinmap()
|
||||||
|
|
Loading…
Reference in New Issue