小233宋 发表于 2025-2-2 10:02:25

求助各位大佬,ADC DMA无法正常使用。

事情是这样的,我想做一个特定条件触发ADC采样的程序,ADC采样频率100kHz采样1000个点。
首先我使用“STC32G-DEMO-CODE-V9.6”里的“实验60-DMA-ADC采样数据自动存储”改动了一下程序,实现了定时触发采样1000个点:图一
然后我自己创建了一个工程,将程序内容分散开,再次运行就不行了:图二
求助各位大佬帮忙看看,非常感谢!

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
具体细节:
首先对系统初始化
//然后对两个串口初始化(这里也有DMA冲突,也不知道是啥问题,使用的别人写的DMA库)
对ADC进行初始化
对DMA进行初始化
定时器4初始化(这里进行一次1k次采样)
while(1)
{
    程序运行指示

    //ADC采集计数清零(这里如果取消注释程序就无法运行)
    //定时器4重新开启1k次采样(这里如果取消注释程序就无法运行)
}
-------------------------
每进一次定时器4中断
首先判断DMA采样是否完成
然后ADC采集计数+1
最后判断ADC采集计数是否到1000(到了就关闭中断,没到就开启下一次DMA ADC转换)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

PS:串口DMA的程序是来自这位大佬:https://www.stcaimcu.com/forum.php?mod=viewthread&tid=5211

小233宋 发表于 2025-2-3 07:57:20

目前发现是只要一启动DMA ADC转换就成这样

zhang32568 发表于 2025-2-3 08:35:12

中断问题超过32中断映射到13号中断,添加ISR.asm文件即可

梁工 发表于 2025-2-6 11:44:43

zhang32568 发表于 2025-2-3 08:35
中断问题超过32中断映射到13号中断,添加ISR.asm文件即可

或者给KEIL打补丁,扩展中断号至255
页: [1]
查看完整版本: 求助各位大佬,ADC DMA无法正常使用。