文章目录
- 前言
- 一、什么是AD采样
- 二、原理图查看及cubeMX配置
- 三、代码解析
- 总结
前言
本文将带大家学习AD采样。
一、什么是AD采样
原理部分这里就不多介绍了,给大家推荐一篇文章大家自己去了解一下即可。
AD采样
二、原理图查看及cubeMX配置
在板子上面有两个可调电位器,分别接到了PB15和PB12,所以我们在配置cubeMX时只需要将这两个引脚配置为ADC的采样通道即可。
这里的PB15和PB12分别接到了两个不同的ADC上面,具体配置如下。
下面对ADC的一些设置进行介绍
Resolution:ADC采样的分辨率这里直接默认选择12位的精度就可以了,如输入电压为0-5V,12位,即0V对应0,5V对应2^12-1=4095,通过这个转换我们就可以算出对应的电压值。
Rank:采样间隔设置我们这里选择默认2.5就行了,间隔越小采样频率越高。
三、代码解析
开启ADC采样
HAL_ADC_Start(&hadc1);
HAL_ADC_Start(&hadc2);
读取数据
uint16_t adc_val1 = 0;
uint16_t adc_val2 = 0;
adc_val1 = HAL_ADC_GetValue(&hadc1);
adc_val2 = HAL_ADC_GetValue(&hadc2);
转换为电压值
HAL_ADC_Start(&hadc1);
HAL_ADC_Start(&hadc2);
adc_val1 = HAL_ADC_GetValue(&hadc1);
volt1 = adc_val1/4096.0f * 3.3f;
adc_val2 = HAL_ADC_GetValue(&hadc2);
volt2 = adc_val2/4096.0f * 3.3f;
打开监视窗口我们可以看见电压值和采样值在不断的变化中,这就说明了我们的程序是正确的,至于这个监视窗口怎么打开我会单独用一篇文章讲解keil5的debug和各种功能。
总结
AD采样涉及的函数没有很多,原理和电路图也不难,相信大家很容易就能掌握。