蓝桥杯比赛中,ADC的使用和配置就像串口一样,比较固定简单,因此这节课介绍ADC的基础功能使用。
可以看出,PB15和PB12是作为ADC输入的两个引脚,这次实验,我们选择PB12作为ADC输入。
在电路图中将PB12管家的功能配置为ADC1_IN1。
将IN11配置为Singl-ended即可,至此ADC的配置就已经完成,生成代码开始KEIL程序的编写:
ADC主要用到三个函数:
HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef *hadc)//启动ADC
例句:
HAL_ADC_Start(&hadc1);
//该函数在每次读值前都要运行,因为默认读完一次值之后adc就关闭了
uint32_t HAL_ADC_GetValue(ADC_HandleTypeDef *hadc) //返回一个32位整数值
例句:val = (double)HAL_ADC_GetValue(&hadc1);
HAL_StatusTypeDef HAL_ADC_Stop(ADC_HandleTypeDef *hadc)//关闭ADC
放到while循环中即可显示:
void LCD_Disp(void)
{HAL_ADC_Start(&hadc1); //启动ADCval = (double)HAL_ADC_GetValue(&hadc1); //读值sprintf(text," volitage =%.2f",val); //数据处理LCD_DisplayStringLine(Line4,(unsigned char*)text); //显示
}
配置ADC总共就两部分:
CubeMX配置相应管脚,设置为Singl-ended
每次读值前都要先启动 HAL_ADC_Start
读值使用value = HAL_ADC_GetValue
下一篇:漫画:什么是外部排序?