3回答

2收藏

采用STM32cube完成ADC的DMA功能

STMCU STMCU 13229 人阅读 | 3 人回复 | 2015-03-12

本帖最后由 feiante 于 2015-3-12 10:51 编辑

试验目的:
完成2路ADC采样(PA1,PA2)通过DMA的方式,转换结果放入uint32_tADC_ConvertedValue[2]数组中。ADC_ConvertedValue[1]放PA1(ADC第一通道的值),ADC_ConvertedValue[2]放PA2(ADC第二通道的值)
具体配置:
[size=0.83em]捕获.JPG (36.72 KB, 下载次数: 1)
下载附件
[color=rgb(153, 153, 153) !important]2015-1-8 08:47 上传



程序分析:
首先定义数组存放ADC转换的值          uint32_t ADC_ConvertedValue[2];
在主程序中加入HAL_ADC_Start_DMA(&hadc, ADC_ConvertedValue,2);开启ADC的DMA功能。
疑问及需要注意的地方:
1、             ADC配置中,由于时钟是48MHz,所以ClockPrescaler为Synchronous clock mode divided by 4,这样ADC的时钟为12MHz(ADC时钟不能超过14MHz)
2、             End of Conversion Selection配置没有试出是什么功能。
3、             ADC_Regular_ConversionMode配置转换的通道数及采样周期,此处如果设成1,那么ADC_ConvertedValue[2]的2个数都是这一个通道的值。

4、             DMA配置中,如果选择Normal模式,那么只执行一次DMA就停止了,如果设置成Circular模式,就可以连续开启DMA。数据宽度设置为Word,外设地址不变,存储器地址加1
分享到:
回复

使用道具 举报

回答|共 3 个

倒序浏览

沙发

foxglove

发表于 2015-3-16 17:24:47 | 只看该作者

明天

采用STM32cube完成ADC的DMA功能  明天
板凳

feiante

发表于 2015-3-17 08:11:59 | 只看该作者

foxglove 发表于 2015-3-16 17:24
采用STM32cube完成ADC的DMA功能  明天

                                                                     
地板

904291602@qq.com

发表于 2015-6-11 21:54:28 | 只看该作者

顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /2 下一条