本文将带大家学习AD采样。
原理部分这里就不多介绍了,给大家推荐一篇文章大家自己去了解一下即可。
AD采样
在板子上面有两个可调电位器,分别接到了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采样涉及的函数没有很多,原理和电路图也不难,相信大家很容易就能掌握。
上一篇:C语言文件操作