Board logo

标题: STM32(寄存器)实例赏析---DMA [打印本页]

作者: 我是MT    时间: 2014-1-1 20:39     标题: STM32(寄存器)实例赏析---DMA

#include "dma.h"
#include "delay.h"
u16 k;
void dma_init(DMA_Channel_TypeDef*DMA_CHx,u32 cpar,u32 cmar,u16 cndtr)
{   
    u32 DR_Base;
    RCC->AHBENR|=1<<0;
    delay_ms(5);
    DR_Base=cpar;
    k=cndtr;
    DMA_CHx->CPAR=DR_Base;  
    DMA_CHx->CMAR=(u32)cmar;
    DMA_CHx->CNDTR=cndtr;
    DMA_CHx->CCR=0X00000000;
    DMA_CHx->CCR|=0<<4;    // 从外设读
    DMA_CHx->CCR|=0<<5;     //不执行循环操作
    DMA_CHx->CCR|=0<<6;
    DMA_CHx->CCR|=0<<7;      //执行存储器地址增量操作  执行外设地址非增量操作
    DMA_CHx->CCR|=1<<8;       //16位     储存器要与外设设置的位数一致
    DMA_CHx->CCR|=1<<10;      //16位
    DMA_CHx->CCR|=1<<13;      //通道优先级
    DMA_CHx->CCR|=0<<14;
    DMA_CHx->CCR&=~(1<<0);       //关闭DMA传输

DMA_CHx->CNDTR=cndtr;

DMA_CHx->CCR|=1<<0;          //开启DMA传输
}
void startdma(DMA_Channel_TypeDef*DMA_CHx)
{
    DMA_CHx->CCR&=~(1<<0);
    DMA_CHx->CNDTR=k;
    DMA_CHx->CCR|=1<<0;   
}
作者: pengpengpang    时间: 2014-1-2 11:31

不错
作者: Bazinga    时间: 2014-2-28 18:59

学习了




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0