OpenEdv-开源电子网

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

ADC+DMA,传输不进 中断问题求助

[复制链接]

13

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2019-8-9
在线时间
48 小时
发表于 2020-3-9 12:37:24 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 nmgbtzyf007 于 2020-3-9 12:44 编辑

ADC+DMA,传输不进 中断问题求助
代码看附件,都配置了,怎么也没看到哪里问题,什么原因进不了中断
哪个兄弟有空给看看,这是DMA文件代码
/**************************************************/
#include "dma.h"
#include "usart.h"
__IO uint16_t ADC_ConvertedValue[RHEOSTAT_NOFCHANEL]={0};

void My_DMA_Init(void)
{
        DMA_InitTypeDef DMA_InitStructure;
       
        NVIC_InitTypeDef NVIC_InitStructure;

        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2, ENABLE); //F1X的是AHB使用能
       
        DMA_InitStructure.DMA_PeripheralBaseAddr = RHEOSTAT_ADC_DR_ADDR;                                                        //外设ACD的源基地址
        DMA_InitStructure.DMA_Memory0BaseAddr = (u32)ADC_ConvertedValue;                                                        //存放数据的寄存器地址就是最上面定义的数譇DC_ConvertedValue楸淞?
  DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory;        //方向从外设到寄存器这里与F1X系列的区别是F1X是选择哪个源这里是哪到哪
        DMA_InitStructure.DMA_BufferSize = RHEOSTAT_NOFCHANEL;                                                                                                //数据大小
        DMA_InitStructure.DMA_Channel = DMA_Channel_0;                                                                //DMA通道0         这里不是知道是什么意思///****,待查*****/
        DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//外设基地址不变 F1X的理解是地址是否增加一般不以用选择禁止
        DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;                                        //同F1XX一样存放数据寄存器地址增加对应多通道的这里选增加
        DMA_InitStructure.DMA_MemoryDataSize = DMA_PeripheralDataSize_HalfWord;                                                //目的的数据大小就是16位半字两个字节
        DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;                //同上就是源数据大小半字两个字节
        DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;                                                                                                                                //DMA循环模式这个一般情况都是循环
        DMA_InitStructure.DMA_Priority = DMA_Priority_High;                        //传输通道优先级别一般都是为高 如果是单的就无所谓了
        /////////////下面关于FIFO待查
        DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable;                                                                                                //不用FIFO用直接模式
        DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull;                                                        //半字两个字节
        DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single;                                                                                //FIFO禁止不需要配置
        DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;                                                //没有FIFO不需要配置这里
        DMA_Init(DMA2_Stream0, &DMA_InitStructure);
        //////////////////////////////////////配置完成只是如果是单通道的DMA_MemoryIn的也选择不增加禁止
                                                                                                                                        //使能DMA流DMA2_Stream0_IRQHandler

  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
        NVIC_InitStructure.NVIC_IRQChannel = DMA2_Stream0_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
        DMA_ITConfig(DMA2_Stream0,DMA_IT_TC,ENABLE);
        DMA_Cmd(DMA2_Stream0, ENABLE);               
}
void DMA2_Stream0_IRQHandler(void)       
{
         if (DMA_GetITStatus(DMA2_Stream0, DMA_IT_TCIF0) == SET)  
    {
                        DMA_ClearITPendingBit(DMA2_Stream0, DMA_IT_TCIF0);
                }
                        printf("\r\n K中断开启 V \r\n" );
}


ADC多通道DMA .rar

3.71 MB, 下载次数: 4

最佳答案

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

论坛 有很多这方面的资料http://www.openedv.com/forum.php?mod=viewthread&tid=290039&extra=
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

31

主题

2183

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
14404
金钱
14404
注册时间
2018-8-3
在线时间
1156 小时
发表于 2020-3-9 12:37:25 | 显示全部楼层
回复

使用道具 举报

13

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2019-8-9
在线时间
48 小时
 楼主| 发表于 2020-3-10 16:52:38 | 显示全部楼层
我问的是中断,给的例子哪里有中断,DMA传输中 断,
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-4 06:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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