[开发工具] stm32CubeMx 实现单通道ADC DMA采集

[复制链接]
 楼主| 51xlf 发表于 2022-1-26 22:39 | 显示全部楼层 |阅读模式
一 :简介
  首先,我们来看一下STM32F4XX参考手册里关于该芯片的ADC功能介绍
   1671720-20190429184928573-842246907.png

1671720-20190429185203731-1597725141.png


二:STM32CubeMx 配置
配置RCC
1671720-20190506153338570-1734700615.png

配置时钟,硬件使用了25MHz无源晶振
1671720-20190506153651524-653544237.png
配置ADC

1671720-20190429185636512-176407322.png
数据对齐方式 为 右对齐
1671720-20190429192010107-1067686335.png

使能 连续转换模式,DMA连续请求
1671720-20190429185829987-1267402644.png

设置采样次数 为 3个周期
1671720-20190429190228273-953107248.png

配置 DMA
1671720-20190429190513425-1053959563.png
Mode设置为Circular模式,数据宽度设置为Half Word  2个字节
配置Project Manager
1671720-20190506154038803-726332865.png
设置好之后,点击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);
三 :实验结果
串口输出结果
1671720-20190429191324452-1960559494.png

sparrow054 发表于 2022-1-27 13:40 | 显示全部楼层
这个不错!!!
豌豆爹 发表于 2022-1-27 14:56 来自手机 | 显示全部楼层
这个很不错
nomomy 发表于 2022-12-1 17:10 | 显示全部楼层
使用两个通道,可以同时采集吗?              
everyrobin 发表于 2022-12-1 17:19 | 显示全部楼层
如何配置库函数stm32adc的dma传输?   
yorkbarney 发表于 2022-12-1 19:55 | 显示全部楼层
连续采样ADC怎样通过DMA将数据传送到外部SRAM
janewood 发表于 2022-12-1 22:16 | 显示全部楼层
adc 规则多通道 的各通道的值怎么读取 ,给个列程
pixhw 发表于 2022-12-2 20:53 | 显示全部楼层
ADC DMA多通道采集到的数据相互有干扰,该怎么破?
hilahope 发表于 2022-12-2 22:23 | 显示全部楼层
  DMA adc采集 有什么用处
qiufengsd 发表于 2022-12-5 23:09 | 显示全部楼层
ADC连续扫描模式必须要用DMA吗  ?
MessageRing 发表于 2022-12-6 13:26 | 显示全部楼层
多通道采集有干扰怎么办
lihuami 发表于 2022-12-6 15:41 | 显示全部楼层
adc多通道采集可以不采用dma吗
Bowclad 发表于 2022-12-6 18:22 | 显示全部楼层
adc采集可以不用dma
Undshing 发表于 2022-12-6 19:24 | 显示全部楼层
咋配置库函数stm32adc的dma?
AloneKaven 发表于 2022-12-6 20:09 | 显示全部楼层
多通道采样的干扰怎样消除啊?
MessageRing 发表于 2022-12-7 18:43 | 显示全部楼层
多通道的各通道的值怎么读?
MessageRing 发表于 2022-12-8 18:56 | 显示全部楼层
用标准库能不能实现单通道ADC DMA采集
eefas 发表于 2022-12-10 12:44 | 显示全部楼层
使用ADC+DMA采样不知道为什么一直失败
Henryko 发表于 2022-12-10 15:32 | 显示全部楼层
DMA是连续发送数据,还是只能一个字节一个字节发
houjiakai 发表于 2022-12-10 19:45 | 显示全部楼层
单通道单次采集和单通道多次采集有什么区别
您需要登录后才可以回帖 登录 | 注册

本版积分规则

551

主题

9923

帖子

24

粉丝
快速回复 在线客服 返回列表 返回顶部