前言

蓝桥杯比赛中,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总共就两部分:

  1. CubeMX配置相应管脚,设置为Singl-ended

  1. 每次读值前都要先启动 HAL_ADC_Start

  1. 读值使用value = HAL_ADC_GetValue

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐