找回密码
 立即注册
查看: 423|回复: 6

32G12K128 DMA ADC 问题请教

[复制链接]

6

主题

14

回帖

134

积分

注册会员

积分
134
发表于 2024-8-30 06:55:23 来自手机 | 显示全部楼层 |阅读模式
问题是这样的,用的dma adc 功能可以采集,但只能采集到一路,
它并没有切换采集下一通道,我本来是想采集完一路,
切换下一路,然后再采集,
最后发现我这样写dma根本没切换
要把需要采集的通道一一写出来,然后再动用DMA  
我是这样写的,看看为什么它没切换
2024-08-30_06.52.52.jpg



2024-08-30_06.53.21.jpg
问题是,只采集到了ma.
下面两路没切换采集,我这样理解不对吗

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-8-30 09:08:49 | 显示全部楼层
#define                ADC_CH                3                        // 1~16, ADC转换通道数, 需同步修改 DMA_ADC_CHSW 转换通道
#define                ADC_NUM                256                        // 每个通道ADC转换次数, 需同步修改DMA_ADC_CFG2 转换次数
unsigned char xdata DMA_Buffer[ADC_CH][ADC_NUM*2+4] _at_ DMA_ADDR;

        DMA_ADC_RXAH=(unsigned char)(DMA_ADDR>>8);        //ADC转换数据存储地址
        DMA_ADC_RXAL=(unsigned char)DMA_ADDR;
        DMA_ADC_CFG2=0x0F;                                                        //每个通道ADC转换次数:256
        DMA_ADC_CHSW0=0x07;                                                        //ADC通道使能寄存器 ADC7~ADC0
        DMA_ADC_CHSW1=0x00;                                                        //ADC通道使能寄存器 ADC15~ADC8
void DMA_ADC_Isr(void) interrupt 13        //重映射中断向量
{
        DMA_ADC_STA=0;
        Dma_Flag=1;

}

DebugLab
回复 支持 反对

使用道具 举报 送花

6

主题

14

回帖

134

积分

注册会员

积分
134
发表于 2024-8-30 11:04:19 来自手机 | 显示全部楼层
DebugLab 发表于 2024-8-30 09:08
#define                ADC_CH                3                        // 1~16, ADC转换通道数, 需同步修改 DMA_ADC_CHSW 转换通道
#define                ADC_NUM                256         ...

你这也就是DMA的初始化和中断嘛,我没贴出来,我的问题是,采集没问题,如果采集多路,就要把多通道一起写出来,而不像其他写一个采集函数,然后想采集哪路,就调用采集函数

点评

是的,主要是配置DMA_ADC_CHSW0和DMA_ADC_CHSW1,然后DMA会按顺序存指定地址  详情 回复 发表于 2024-8-30 11:11
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-8-30 11:11:15 | 显示全部楼层
c2016*** 发表于 2024-8-30 11:04
你这也就是DMA的初始化和中断嘛,我没贴出来,我的问题是,采集没问题,如果采集多路,就要把多通道一起 ...

是的,主要是配置DMA_ADC_CHSW0和DMA_ADC_CHSW1,然后DMA会按顺序存指定地址
DebugLab
回复 支持 反对

使用道具 举报 送花

6

主题

14

回帖

134

积分

注册会员

积分
134
发表于 2024-8-30 15:39:01 来自手机 | 显示全部楼层
DebugLab 发表于 2024-8-30 11:11
是的,主要是配置DMA_ADC_CHSW0和DMA_ADC_CHSW1,然后DMA会按顺序存指定地址

嗯嗯,难道DMA采集不能采集一路完后,再切换采集下一路,如果想采集那些路就必须全部写上,然后启动Dma

点评

不用手动切换,自动的  详情 回复 发表于 2024-8-30 15:40
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-8-30 15:40:55 | 显示全部楼层
c2016*** 发表于 2024-8-30 15:39
嗯嗯,难道DMA采集不能采集一路完后,再切换采集下一路,如果想采集那些路就必须全部写上,然后启动Dma ...

不用手动切换,自动的
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2024-8-30 17:13:57 | 显示全部楼层
初始化时指定那些通道要参与DMA,启动后会自动切换通道直至按要求转换完成后,将标志置1.
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 09:01 , Processed in 0.139825 second(s), 92 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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