在蓝桥杯嵌入式比赛中,ADC也是一项几乎每年都回考察的内容,下面我们来进行ADC的额配置与电压读取。
1-CubeMAX的配置
首先我们在产品手册中查找开发板上的连个ADC引脚分别为PB15、PB12。注意J11和J12的跳线帽不能拔掉。
之后,我们在上一章节的LCD工程项目的基础上进行配置:
通过的三步操作我们就完成了ADC的配置,下面我们就可生成代码。
2-Keil代码编写
首先,我们在main函数上面定义要显示的变量:
uint16_t adc_date_1, adc_date_2; // ADC数字量
float voltage1,voltage2; // ADC模拟量,实际电压
然后,我们在main函数中使能ADC:
HAL_ADC_Start(&hadc1);
HAL_ADC_Start(&hadc2);
adc_date_1 = HAL_ADC_GetValue(&hadc1);
adc_date_2 = HAL_ADC_GetValue(&hadc2);
voltage1 = adc_date_1*3.3/4095;
voltage2 = adc_date_2*3.3/4095;
sprintf(text,"data1:=%4d v1=%.2f ",adc_date_1, voltage1);
LCD_DisplayStringLine(Line1, (uint8_t *)text);
sprintf(text,"data2:=%4d v2=%.2f ",adc_date_2, voltage2);
LCD_DisplayStringLine(Line2, (uint8_t *)text);
HAL_Delay(1000);
ADC的使用就只有上面的部分,只要确保配置步骤正确那么就没有问题。