一 :简介 首先,我们来看一下STM32F4XX参考手册里关于该芯片的ADC功能介绍
二:STM32CubeMx 配置
配置RCC
配置时钟,硬件使用了25MHz无源晶振 配置ADC
数据对齐方式 为 右对齐
使能 连续转换模式,DMA连续请求
设置采样次数 为 3个周期
配置 DMA Mode设置为Circular模式,数据宽度设置为Half Word 2个字节 配置Project Manager 设置好之后,点击GENERATE CODE 生成代码
定义变量 __IO uint16_t ADC_ConvertedValue[20];
__IO float ADC_Volt;
启动DMA数据传输 HAL_ADC_Start_DMA(&hadc1, (uint32_t*)&ADC_ConvertedValue[0], 20);
读取ADC数据 unsigned int i = 0, ADC_Value = 0;
for(i = 0; i < 20; ++i)
{
ADC_Value += ADC_ConvertedValue;
}
ADC_Value = ADC_Value / 20;
printf("ADC Value %d\r\n",ADC_Value);
printf("vol %f\r\n", ADC_Value * 3.3 / 4096); 三 :实验结果 串口输出结果
|