本篇将利用CubeMX开发工具学习ADC(模拟输出)的使用
我们还是利用上一章的工程进行二次开发,这样方便
首先打开CubeMX进行相关配置
通过查看G431RBT6开发板有关模拟输出部分的原理图可知,模拟输出用到的IO口是PB15和PB12
接着我们在main.c中写adc获取函数(getADC)
double getADC(ADC_HandleTypeDef *pin)
{
unsigned int adc;//定义变量
HAL_ADC_Start (pin);//开启ADC
adc = HAL_ADC_GetValue(pin);//读取到的adc原始值
return adc*3.3/4096;//将读取到的量除总量2^12=4096,看这个量占了3.3V电压的多少
}
在main.c中的while(1)中写显示函数,在LCD上实时显示两个电位器对应的电压值
char text[30];
sprintf(text," V1:%.2f ",getADC(&hadc2));
LCD_DisplayStringLine(Line6, (uint8_t *)text);
sprintf(text," V2:%.2f ",getADC(&hadc1));
LCD_DisplayStringLine(Line8, (uint8_t *)text);
将代码编译,烧录,最后让我们来看看效果
当电位器旋转到不同位置时,对应电压在0~3.3V之间变化