你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32f407进行ADC采样,DMA传输数据,数组里面的数据一直为0

[复制链接]
sldkjf 提问时间:2021-7-15 09:30 / 已解决

最近做ADC采样,通过DMA将数据从ADC1的储存器传到自己定义的数组里面,结果传输结果打印出来一直显示为0,求大神指导一下

main函数

main函数

ADC.c

ADC.c

dma.c

dma.c
4.png
收藏 评论5 发布时间:2021-7-15 09:30

举报

5个回答
yr 最优答案 回答时间:2021-7-15 10:21:27
ADC转换后的数据是定点数,你用一个float的数组来缓存数据,而float的数据是32位,DMA的设置字长是halfword,这怎么能传过去呢?没见过之间把adc传到浮点数这样做,你是否先把get_buffer改成uint16先试试看。
胤幻1988 回答时间:2021-7-15 10:58:55
三楼说的很有可能,数值类型换成整形看下~
wenyangzeng 回答时间:2021-7-15 10:00:15
ST官方有例程可以参考:
ADC_RegularConversion_DMA.rar (5.99 MB, 下载次数: 31)
xmshao 回答时间:2021-7-15 09:57:17
建议你分两步来检查。第一步检查确认DMA传输,即从ADC结果到内存数组这个过程有无问题。如有问题,重点检查DMA相关配置。若没问题,则进入第二步,即检查打印输出这块,检查相关代码及外部配合的软硬件工具。
sldkjf 回答时间:2021-7-15 15:48:11
yr 发表于 2021-7-15 10:21
ADC转换后的数据是定点数,你用一个float的数组来缓存数据,而float的数据是32位,DMA的设置字长是halfword ...

问题解决了,确实数组设置为float,显示不出来,另外上边ADC和dma中的一些初始化设置顺序也有点问题
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版