05、模拟数字信号转换器ADC
ADC即模拟数字转换器(英语:Analog-to-digital converter)是用于将模拟形式的连续信号转换为数字形式的离散信号的一类设备。一个模拟数字转换器可以提供信号用于测量。与之相对的设备成为数字模拟转换器,也就是DAC,它是把数字量转变成模拟的器件DAC。
将上一篇博客的例程复制一份命名为Ag_04。在bsp文件夹中新建两个文件分别为badc.c和badc.h。打开.ioc文件,根据手册配置PB15为ADC_2IN15,PB12为ADC1_IN11。然后配置ADC1的第11个输入通道为Single_ended。同理,ADC2如是。
配置完成后,点击生成代码。打开工程文件,将前面新建的badc.c添加到工程,在里面实现功能:检测开发板电位器输出的模拟电压信号。
badc.c:
#include "badc.h"
double Get_Adc(ADC_HandleTypeDef * PIN) //定义计算电压值的函数
{
uint adc; //定义一个变量来储存adc值
HAL_ADC_Start(PIN); //库函数开启ADC转换
adc = HAL_ADC_GetValue(PIN); //库函数获取获取ADC转换的值
return adc*3.3/4096; //计算得出电压值,3.3是电源电压,4096是2的12次,12是cube里ADC设置的精度
}
badc.h:
#ifndef _BADC_H
#define _BADC_H
#include "main.h"
double Get_Adc(ADC_HandleTypeDef * PIN);
#endif
在main.c的显示函数中加入:
sprintf(dis_2," V:%.2f",Get_Adc(&hadc1));
LCD_DisplayStringLine(Line8,(unsigned char *)dis_2);
sprintf(dis_2," V:%.2f",Get_Adc(&hadc2));
LCD_DisplayStringLine(Line9,(unsigned char *)dis_2);
编译无误,下载完成!