【STM32CubeMx你不知道的那些事】第八章:STM32CubeMx的ADC DMA配置

  上一章我们讲了简单的SPI配置,这一章我们讲解一下ADC DMA的配置。话不多说直接进入正题。

一、准备工作

这里我们要想配置ADC DMA并验证需要的准备工作如下:

1、MDK for ARM(KEIL5)或者IAR FOR ARM(这个是软件必备开发平台) (必须)

2、一块STM32最小系统开发板 (必须)

3、这里最好有一本关于STM32学习的书籍(这里就不推荐了,网上有一大把)

二、具体的操作

1、工程建立

1)、在Pinout菜单栏下,ADC1的选择与配置。配置如图

【STM32CubeMx你不知道的那些事】第八章:STM32CubeMx的ADC DMA配置_第1张图片
我们这里配置了ADC的四个通道。

2)、在Configuration菜单栏下,点击Analog下的SPI弹出配置界面,配置如图

【STM32CubeMx你不知道的那些事】第八章:STM32CubeMx的ADC DMA配置_第2张图片
【STM32CubeMx你不知道的那些事】第八章:STM32CubeMx的ADC DMA配置_第3张图片
【STM32CubeMx你不知道的那些事】第八章:STM32CubeMx的ADC DMA配置_第4张图片
在DMA Setting下,配置ADC DMA。
①添加 ADC1 DMA;
②设置ADC1 使用DMA 通道1;
③选择DMA模式循环模式;
④选择数据类型是半个字节就是16位数据。
⑤点击OK配置完成。

3)、生成工程

点击Project菜单栏选择Generate code,工程生成完毕。

2、工程测试

1)、在main.C文件下添加红色箭头代码

【STM32CubeMx你不知道的那些事】第八章:STM32CubeMx的ADC DMA配置_第5张图片

  uint16_t ADCvalue[20][4];
  HAL_ADC_Start_DMA(&hadc1, (uint32_t*)&ADCvalue, 80);	

这里是使用了ADC四个通道,我们用二维数组uint16_t ADCvalue[20][4]来存ADC采集的数据。
ADCvalue[num][0]-----------为通道0的ADC值
ADCvalue[num][1]-----------为通道1的ADC值
ADCvalue[num][2]-----------为通道2的ADC值
ADCvalue[num][3]-----------为通道3的ADC值

HAL_ADC_Start_DMA(&hadc1, (uint32_t*)&ADCvalue, 80);
这句话是启动ADC DMA转换,ADCvalue是缓存BUFF,80是BUFF的大小我们这里定义了BUFF是20 * 4 = 80;
仿真亲测可用!~

3、总结

这样ADC DMA配置就完成了!~~~

如有什么不懂联系加QQ群:1063618791欢迎大家学习交流!

QQ:1320300083

你可能感兴趣的:(STM32CubeMx)