硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1434|回复: 4
收起左侧

[DMA] H7的触发DMA采样遇到问题

[复制链接]

4

主题

9

回帖

21

积分

新手上路

积分
21
发表于 2024-6-24 10:56:11 | 显示全部楼层 |阅读模式
本帖最后由 冰泮-Y 于 2024-6-24 10:59 编辑

问题如下:在原ADC+DMA双缓存采样实验配置基础上,将DMA_CIRCULAR改为DMA_NORMAL,希望通过按键触发START_DMA_ADC函数读取一次ADC的值。可是始终无法做到成功触发,请问我的配置有什么问题吗?





图1:DMA中断与开启函数

图1:DMA中断与开启函数

图2:初始化函数

图2:初始化函数
回复

使用道具 举报

25

主题

233

回帖

308

积分

高级会员

积分
308
QQ
发表于 2024-6-24 17:58:50 | 显示全部楼层

明显的问题是这里,没有指向buffer头
例如可以改成&buffer[0]
明显错误.png

但是这样第二次触发采样至少会有第一次数据(如果没有清buffer)
还可能是MPU配置和buffer分配区域的问题,需要MPU配置信息和buffer声明信息才能看出来
还可能是ADC问题,不使用DMA单ADC功能测过吗
回复

使用道具 举报

4

主题

9

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2024-6-24 19:16:03 | 显示全部楼层
yono 发表于 2024-6-24 17:58
明显的问题是这里,没有指向buffer头
例如可以改成&buffer[0]

谢谢大佬回复~ADC是正常的,BUFFER更改为[0]依然不能成功开触发DMA。MPU配置与BUFFER信息如下图:

MPU配置

MPU配置

BUFFER_SIZE

BUFFER_SIZE
回复

使用道具 举报

25

主题

233

回帖

308

积分

高级会员

积分
308
QQ
发表于 2024-6-24 20:14:46 | 显示全部楼层

MPU和buffer设置没有问题
似乎是这里,GPIO的脚时钟开错了,开GPIOA系列来着。
没有发现其他问题,ADC和DMA的配置先后应该不影响
脚时钟.png
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2024-6-25 14:58:42 | 显示全部楼层
把HAL ADC Start DMA返回值打印出来,看看返回值是多少。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-15 00:15 , Processed in 0.042347 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表