本文记录使用STM32TUBEMX配置蓝桥杯扩展板STM32G431RBT6实现ADC多通道采集过程。
一、硬件配置
本文使用的资源是扩展版上的AO1,AO2。请自行配置扩展版上的跳线帽。
二、STM32TUBEMX配置
1.打开PA4,PA5的ADC采集功能。![](https://img-blog.csdnimg.cn/direct/27badf1df00341f0b27ac2af07af5e59.png)
2.把采集通道数改成二
3.使能扫描模式和间断模式
4.设置通道
三、代码编写
写个测试代码。
void ADC_Read(void)
{
uint32_t PA4_duty=0,PA5_duty=0;
for(int i=0;i<10;i++)
{
HAL_ADC_Start(&hadc2);
HAL_ADC_PollForConversion(&hadc2,50);
PA5_duty+=HAL_ADC_GetValue(&hadc2);
HAL_ADC_Start(&hadc2);
HAL_ADC_PollForConversion(&hadc2,50);
PA4_duty+=HAL_ADC_GetValue(&hadc2);
HAL_ADC_Stop(&hadc2);
}
LCD.DATA.PA4=PA4_duty*3.3/40960;
LCD.DATA.PA5=PA5_duty*3.3/40960;
}
while (1)
{
lcd_show(Line3," PA4=%.2lf ",LCD.DATA.PA4)
lcd_show(Line4," PA5=%.2lf ",LCD.DATA.PA5)
ADC_Read();
}
勉强能用,就是数字在跳。。。