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

This commit is contained in:
Chasel 2025-02-12 14:26:35 +08:00 committed by GitHub
parent 70982aea87
commit d8079e3843
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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;