基于STM32Cube编程的4个AD通道采集程序
基本介绍
程序基于STM32F103C8T6,采用ADC1的IN0~IN3四个通道采集数据。
AD时钟来源于PCLK经过ADC预分频得到,F1最高14M,一般设置12M。
ADC采样时间:T=12.5+采样时间。其中12.5个周期是固定的,采样时间可设置,这里设置成239.5,时间越长,采样越准确。所以完成一次采样时间T=(12.5+239.5)/12M=21us
STM32Cube设置
ADC1的四个采样通道初始化设置
DMA设置:循环转换Circular,地址递增,数据长度选择字Word。
开启DMA中断
注意事项
待更新
主要代码
下载初始化后面的两个函数,第一行用于校正,第二行用于开启ADC的DMA中断。
HAL_ADCEx_Calibration_Start(&hadc1);
HAL_ADC_Start_DMA(&hadc1,ADCConver,4);
以下是DMA中断回调函数,每次转换完成都会进这个中断回调函数,这里统计进入中断次数。
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
{
if(hadc->Instance==ADC1)
{
count++;
}
}
下载验证
线刚拔,待更新