前言
蓝桥杯比赛中,ADC的使用和配置就像串口一样,比较固定简单,因此这节课介绍ADC的基础功能使用。
板载电路图

可以看出,PB15和PB12是作为ADC输入的两个引脚,这次实验,我们选择PB12作为ADC输入。
CubeMX配置
一、配置管脚

在电路图中将PB12管家的功能配置为ADC1_IN1。
二、参数配置

将IN11配置为Singl-ended即可,至此ADC的配置就已经完成,生成代码开始KEIL程序的编写:
Keil程序编写
ADC主要用到三个函数:
1、HAL_ADC_Start
HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef *hadc)//启动ADC
例句:
HAL_ADC_Start(&hadc1);
//该函数在每次读值前都要运行,因为默认读完一次值之后adc就关闭了
2、HAL_ADC_GetValue
uint32_t HAL_ADC_GetValue(ADC_HandleTypeDef *hadc) //返回一个32位整数值
例句:
val = (double)HAL_ADC_GetValue(&hadc1);
3、HAL_ADC_Stop
HAL_StatusTypeDef HAL_ADC_Stop(ADC_HandleTypeDef *hadc)//关闭ADC
4、读值显示代码:
放到while循环中即可显示:
void LCD_Disp(void)
{
HAL_ADC_Start(&hadc1); //启动ADC
val = (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