新手上路
- 积分
- 49
- 金钱
- 49
- 注册时间
- 2012-2-9
- 在线时间
- 3 小时
|
发表于 2012-3-15 16:56:04
|
显示全部楼层
回复【14楼】正点原子:
---------------------------------
void MYDMA_SConfig(DMA_Channel_TypeDef*DMA_CHx,u32 cpar,u32 cmar,u16 cndtr) //DMA1通道4,外设为串口1,存储器为recbuff,长度20
{
u32 DR_Base; //做缓冲用,不知道为什么.非要不可
RCC->AHBENR|=1<<0;//开启DMA1时钟
DR_Base=cpar; //串口1
DMA_CHx->CPAR=DR_Base; //DMA1 外设地址 上一句就 已经把串口的地址赋给了Base变量
DMA_CHx->CMAR=(u32)cmar; //DMA1,存储器地址 buff
DMA1_MEM_LEN=cndtr; //保存DMA传输数据量 这一句就是数据的长度
DMA_CHx->CNDTR=cndtr; //DMA1,传输数据量
DMA_CHx->CCR=0X00000000;//复位
DMA_CHx->CCR|=0<<4; //从外设读
DMA_CHx->CCR|=0<<5; //普通模式
DMA_CHx->CCR|=1<<6; //外设地址增量模式
DMA_CHx->CCR|=0<<7; //不执行存储器增量模式
DMA_CHx->CCR|=0<<8; //外设数据宽度为8位
DMA_CHx->CCR|=0<<10; //存储器数据宽度8位
DMA_CHx->CCR|=1<<12; //中等优先级
DMA_CHx->CCR|=0<<14; //非存储器到存储器模式
}
原子哥,我是想通过串口接受的,你看看这个初始化有没有错、、、、 |
|