OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3362|回复: 2

关于ADC-DMA模式下的几个问题

[复制链接]

2

主题

3

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2018-2-24
在线时间
5 小时
发表于 2018-3-1 11:07:05 | 显示全部楼层 |阅读模式
3金钱
目前想用定时器固定频率触发ADC采集通道1信号,ADC转换完成触发DMA采集,DMA采集完成触发DMA中断置计算标志位,开始计算。目前有几个问题:1.DMA配置是否要放在ADC_DMACmd()函数之前?
2.ADC_DMACmd()函数设置好了是不是ADC就会在转换完成后自动进行DMA传输?
3.DMA中断是使用传输完成中断还是传输过半中断?(个人觉得使用传输完成中断比较好,但是在网上看见一些例子是传输过半中断,还是问一下)

最佳答案

查看完整内容[请看2#楼]

步骤是这样的 /* ADC配置 */ ADC_DMACmd(ADC1, ENABLE); ADC_Cmd(ADC1, ENABLE); ADC_ResetCalibration(ADC1); while(ADC_GetResetCalibrationStatus(ADC1)); ADC_StartCalibration(ADC1); while(ADC_GetCalibrationStatus(ADC1)); ADC_SoftwareStartConvCmd(ADC1, ENABLE); ADC_DMA_Config(); 而ADC_DMA_Con ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

199

帖子

0

精华

高级会员

Rank: 4

积分
711
金钱
711
注册时间
2017-5-20
在线时间
96 小时
发表于 2018-3-1 11:07:06 | 显示全部楼层
本帖最后由 林光华ing 于 2018-3-2 10:44 编辑

        步骤是这样的
       /* ADC配置  */
        ADC_DMACmd(ADC1, ENABLE);
        ADC_Cmd(ADC1, ENABLE);
        ADC_ResetCalibration(ADC1);
        while(ADC_GetResetCalibrationStatus(ADC1));
        ADC_StartCalibration(ADC1);
        while(ADC_GetCalibrationStatus(ADC1));
        
        ADC_SoftwareStartConvCmd(ADC1, ENABLE);
        
        ADC_DMA_Config();
而ADC_DMA_Config是这样
static void ADC_DMA_Config(void)
{
        /*省略*/                                               
        DMA_Init(DMA1_Channel1, &DMA_InitStructure);
        DMA_Cmd(DMA1_Channel1, ENABLE);                                                                                           
}

回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-3-2 01:30:15 | 显示全部楼层
参考下论坛别人的代码。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 17:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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