瀏覽代碼

[bsp][mm32f526x] 1.fix adc device; (#9978)

Chasel 2 月之前
父節點
當前提交
d8079e3843
共有 1 個文件被更改,包括 3 次插入8 次删除
  1. 3 8
      bsp/mm32f526x/drivers/drv_adc.c

+ 3 - 8
bsp/mm32f526x/drivers/drv_adc.c

@@ -6,6 +6,7 @@
  * Change Logs:
  * Date           Author       Notes
  * 2025-01-22     chasel       first version
+ * 2025-02-10     chasel       fix adc calibration did not clear flag bits
  */
 #include <rtdevice.h>
 #include "board.h"
@@ -94,14 +95,8 @@ static rt_err_t mm32_get_adc_value(struct rt_adc_device *device, rt_int8_t chann
 
     ADC_SoftwareStartConvCmd(adc_x, ENABLE);
 
-    rt_uint32_t cnt = 0;
-    /* @warning There is a bug here, please fix me. */
-    while(ADC_GetFlagStatus(adc_x, ADC_FLAG_EOS) == 0) {
-        rt_thread_mdelay(1);
-        if (cnt++ > 5)
-            break;
-    }
-    ADC_ClearFlag(adc_x, ADC_FLAG_EOS);
+    while(ADC_GetFlagStatus(adc_x, ADC_FLAG_EOC) == 0);
+    ADC_ClearFlag(adc_x, ADC_FLAG_EOC);
 
     *value = ADC_GetChannelConvertedValue(adc_x, channel);
     return RT_EOK;