本文主要是介绍RT-Thread系统 STM32 ADC设备读取到的数据不准或漂移的修复改进,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
STM32 HAL库中有校准功能,即 HAL_ADCEx_Calibration_Start()函数。但RT-Thread系统 ADC设备驱动中并没有调用,这导致了读取到的ADC数值比正常值整体偏大一些。
解决方法
HAL_ADCEx_Calibration_Start()函数介绍写着必须在HAL_ADC_Stop()后或HAL_ADC_Start()前调用这个校准函数。
于是在RT-Thread工程中drivers/drv_adc.c文件中,HAL_ADC_Start()前增加下面两条语句。
/* stop ADC */HAL_ADC_Stop(stm32_adc_handler);//新增/* ADC automatic self-calibration */HAL_ADCEx_Calibration_Start(stm32_adc_handler);//新增/* start ADC */HAL_ADC_Start(stm32_adc_handler);
经过测试,加入校准函数以后ADC的转换精度明显提升,没有出现整体漂移的现象。
这篇关于RT-Thread系统 STM32 ADC设备读取到的数据不准或漂移的修复改进的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!