DMA 的初始化
Init DMA
*dma_ccr7 = 0xFFFF8000; // clear ccr
*dma_ifcr = 0x0F000000; // clear dma channel 7
*dma_cpar7 = (unsigned int)usart2_dr; // ph address
*dma_cmar7 = (unsigned int)uart_buf; // mem address
*dma_cndtr7 = (unsigned int)uart_buf_cnt; // count
*dma_ccr7 = 0xFFFF9092; // set PL=medium Msize=8bit Psize=8bit Mem_inc=1 Ph_inc=0 Circ=0 Dir=Mem->Ph Complete_Enable=1 En=0
开始数据传输
Start DMA
*dma_ifcr = 0x0F000000; // clear dma channel 7
*dma_ccr7 &= 0xFFFFFFFE;
*dma_cmar7 = stt; // mem address
*dma_cndtr7 = sz;
*dma_ccr7 |= 0x1;
等待完成
Wait Complete
while (((*dma_isr)&0x02000000)==0x00000000)