OpenEdv-开源电子网

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

关于DMA 跳转中断设置问题

[复制链接]

3

主题

6

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2016-5-4
在线时间
6 小时
发表于 2016-5-4 18:56:20 | 显示全部楼层 |阅读模式
2金钱
原子哥 你好  程序设计是这样的;
能够实现按键  key2 后  DMA  传输的功能  
可是  我想加入DMA 传输完成后进入中断的设置
于是我加了下面的代码  但是  DMA中断的蜂鸣器没声   请问  我是不是少了些什么呢

DMA_CHx->CCR|=1<<1;                               //允许传输完成中断       
程序的部分代码如下  :



void DMA1_Channel4_Init(DMA_Channel_TypeDef*DMA_CHx,u32 cpar,u32 cmar,u16 cndtr)
{
        RCC->AHBENR|=1<<0;                        //开启DMA1时钟
        delay_ms(5);                                //等待DMA时钟稳定
        DMA_CHx->CPAR=cpar;                  //DMA1 外设地址
        DMA_CHx->CMAR=(u32)cmar;         //DMA1,存储器地址
        DMA1_MEM_LEN=cndtr;              //保存DMA传输数据量
        DMA_CHx->CNDTR=cndtr;            //DMA1,传输数据量
        DMA_CHx->CCR=0X00000000;        //复位
        DMA_CHx->CCR|=1<<4;                  //从存储器读
        DMA_CHx->CCR|=0<<5;                  //普通模式
        DMA_CHx->CCR|=0<<6;                 //外设地址非增量模式
        DMA_CHx->CCR|=1<<7;                  //存储器增量模式
        DMA_CHx->CCR|=0<<8;                  //外设数据宽度为8位
        DMA_CHx->CCR|=0<<10;                 //存储器数据宽度8位
        DMA_CHx->CCR|=1<<12;                 //中等优先级
        DMA_CHx->CCR|=0<<14;                 //非存储器到存储器模式
        DMA_CHx->CCR|=1<<1;                               //允许传输完成中断       
}

//开启一次DMA传输
void DMA1_Channel4_Enable(DMA_Channel_TypeDef*DMA_CHx)
{
        DMA_CHx->CCR&=~(1<<0);       //关闭DMA传输
        DMA_CHx->CNDTR=DMA1_MEM_LEN; //DMA1,传输数据量
        DMA_CHx->CCR|=1<<0;          //开启DMA传输
}       
//按键中断  开始使能DMA 传输
void EXTI2_IRQHandler(void)
{
        delay_ms(10);        //消抖

        USART1->CR3=1<<7;           //使能串口1的DMA发送      
        DMA1_Channel4_Enable(DMA1_Channel4);//开始一次DMA传输!          
                       
        EXTI->PR=1<<2;  //清除LINE2上的中断标志位  
}

//DMA 中断
void DMA1_Channel4_IRQHandler()
{

        buzzer_On();

        DMA1->ISR |= 1<<13;

                  

}

最佳答案

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

还要配置中断分组和优先级
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165369
金钱
165369
注册时间
2010-12-1
在线时间
2110 小时
发表于 2016-5-4 18:56:21 | 显示全部楼层
还要配置中断分组和优先级
回复

使用道具 举报

3

主题

6

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2016-5-4
在线时间
6 小时
 楼主| 发表于 2016-5-4 21:04:02 | 显示全部楼层
嗯  好了  谢谢 我想少了点哈   
回复

使用道具 举报

3

主题

6

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2016-5-4
在线时间
6 小时
 楼主| 发表于 2016-5-4 21:05:36 | 显示全部楼层
嗯  好了  谢谢 我想少了点哈
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-1-19 11:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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