天天看点

STM32CUBEMX使用HAL库配置单通道ADC+DMA

STM32CUBEMX使用HAL库配置单通道ADC+DMA

创建时间: 2021年5月8日

作者: 创新实验室——GL

版本: v1.0

上次修改时间: 无

联系作者: 无

首先选择debug的模式

STM32CUBEMX使用HAL库配置单通道ADC+DMA

然后选择外部高速时钟

STM32CUBEMX使用HAL库配置单通道ADC+DMA

然后随便选择一个通道

STM32CUBEMX使用HAL库配置单通道ADC+DMA

然后配置时钟树,在这个地方加输入72然后敲个回车就行

PS:这里根据自己的单片机最大频率进行选择,可以看到这里的的ADC的时钟来到了12M

STM32CUBEMX使用HAL库配置单通道ADC+DMA

然后开启ADC的连续转换

STM32CUBEMX使用HAL库配置单通道ADC+DMA

选择自己需要的采样时间

STM32CUBEMX使用HAL库配置单通道ADC+DMA

然后添加ADC的DMA,并配置模式为circular,数据大小默认是半字,不用改

STM32CUBEMX使用HAL库配置单通道ADC+DMA

最后再给一次ADC的配置图,有可能因为版本原因会有不同的配置,此时此刻作者这里的版本是CUBE MX V6.1.1

STM32CUBEMX使用HAL库配置单通道ADC+DMA

最后勾选工程生成文件配置

STM32CUBEMX使用HAL库配置单通道ADC+DMA
STM32CUBEMX使用HAL库配置单通道ADC+DMA

最后生成代码,在代码中定义一个数组,例如作者这里定义了一个128的数组

然后在初始化的地方添加启动DMA转换,这里是启动DMA一次性转换128次,完成后回调callback

然后添加DMA转化完成的callback函数

void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
{
//add your code
}
           

启动试试吧!

继续阅读