硬汉嵌入式论坛

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

[STM32H7] TIM+ADC+DMA

[复制链接]

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2024-12-4 17:30:06 | 显示全部楼层 |阅读模式
本帖最后由 liusan 于 2024-12-4 17:33 编辑

用STM32H743,目标是实现定时器触发ADC,并用DMA传输数据到一个数组,DMA的stream应该是随便配置才对,为什么一用keil的调试,就卡在启动文件的中断向量表里了呢?网上说是使能了中断,但是没有中断服务函数,我明明有DMA的中断啊(经检测ADC的中断很正常),求助大佬,难道是ADC的某一个通道(我用的ADC1 in19 )必须对应一个stream吗
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2024-12-5 09:12:09 | 显示全部楼层
是不是DMA中断没有写,仅写了ADC中断。
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
 楼主| 发表于 2024-12-5 09:49:06 | 显示全部楼层
之前的问题解决了,但是又出现了ADC无法触发DMA的问题,ADC现在一直在工作(DR一直在变),但是DMA没反应,不知道是什么原因
硬汉哥能给我看看ADC和DMA配置哪里有问题不,主函数里还有这几行
HAL_ADCEx_Calibration_Start(&hadc1,ADC_CALIB_OFFSET,ADC_SINGLE_ENDED);
HAL_ADC_Start_DMA(&hadc1, (uint32_t *)adc_buffer, 2000);                          /* ¿ªÆôADC£¬Í¨¹ýDMA´«Êä½á¹û */
HAL_DMA_RegisterCallback(&hdma_memtomem_dma1_stream0,HAL_DMA_XFER_CPLT_CB_ID,MY_HAL_DMA_ConvCpltCallback);

#include adc.h.txt

16.5 KB, 下载次数: 2

回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
 楼主| 发表于 2024-12-5 11:05:38 | 显示全部楼层
好了,现在的问题变成了只能触发DMA中断一次,之后再也不能触发了
回复

使用道具 举报

2

主题

32

回帖

38

积分

新手上路

积分
38
发表于 2024-12-6 15:02:46 | 显示全部楼层
其实可以看看是不是不同DMA通道对应使用的外设限制(不确定这款芯片是不是这样),另外这个DMA中断只触发一次可能也只是在初始化之后进了一次中断而已
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2024-12-7 08:34:59 | 显示全部楼层
liusan 发表于 2024-12-5 09:49
之前的问题解决了,但是又出现了ADC无法触发DMA的问题,ADC现在一直在工作(DR一直在变),但是DMA没反应, ...

方便的话,重新话下,你发的这个是乱码

234.png
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-14 01:09 , Processed in 0.045304 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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