summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortianshnegming <[email protected]>2024-03-24 02:43:09 +0800
committerGitHub <[email protected]>2024-03-23 14:43:09 -0400
commit2cb9d2bc94eee2e9a3b8ab328644497228f063dd (patch)
tree6a0b132cc7319d29f8bf55a9c3501f6e2d4b01b6
parent22106bb8de655148be8367ac2609582280977ca3 (diff)
[bsp][at32]修复由于ADC转换完成标志未清除导致ADC多通道读取时概率性地通道错位
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_adc.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/bsp/at32/libraries/rt_drivers/drv_adc.c b/bsp/at32/libraries/rt_drivers/drv_adc.c
index 73a9c1184c..1a67c490e8 100644
--- a/bsp/at32/libraries/rt_drivers/drv_adc.c
+++ b/bsp/at32/libraries/rt_drivers/drv_adc.c
@@ -135,8 +135,10 @@ static rt_err_t at32_get_adc_value(struct rt_adc_device *device, rt_int8_t chann
/* adc_x regular channels configuration */
#if defined (SOC_SERIES_AT32F435) || defined (SOC_SERIES_AT32F437) || \
defined (SOC_SERIES_AT32F423)
+ adc_flag_clear(adc_x, ADC_OCCE_FLAG);
adc_ordinary_channel_set(adc_x, (adc_channel_select_type)channel, 1, ADC_SAMPLETIME_247_5);
#else
+ adc_flag_clear(adc_x, ADC_CCE_FLAG);
adc_ordinary_channel_set(adc_x, (adc_channel_select_type)channel, 1, ADC_SAMPLETIME_239_5);
#endif