蓝桥杯嵌入式adc配置

1.cube32配置:PB12 ADC1_IN1 PB15 ADC2_IN1
左侧ADC1 IN11 使能,四分频,循环接收(Continuous Conversion Mode)和DMA都使能;ADC2 IN15使能,四分频,循环接收和DMA都使能
左侧DMA ADD ADC1与ADC2,各自循环模式,速度为Medium,data Width,两个都是word
左侧NVIC 勾选ADC1/ADC2的中断,改成2级

2.main.c
HAL_ADC_Start_DMA(&hadc1,(uint32_t*)&dma_buffer[0][0],30);//一次读取30个数据
HAL_ADC_Start_DMA(&hadc2,(uint32_t*)&dma_buffer[1][0],30);
3.adc_app.c

void adc_proc(void)
{
for(uint8_t i = 0;i < 30;i++)//循环30次
{
adc_value[0] += (float)dma_buffer[0][i];
adc_value[1] += (float)dma_buffer[1][i];
}

adc_value[0] = adc_value[0] / 30 * 3.3f / 4096;
adc_value[1] = adc_value[1] / 30 * 3.3f / 4096;

}
1 个赞