各位大虾好:
想请教在COLDFIRE的MCF5213中的DMA模式发送UART数据是否只能发送偶数个数据,我在使用DMA发送数据过程中只要启动DMA发送,读其DSR寄存器会发现总线错误,初始化代码如下:
MCF_SCM_RAMBAR = 0 | MCF_SCM_RAMBAR_BDE; MCF_SCM_PACR0123 = 0x44444444; MCF_SCM_GPACR01 = 0x0C0C0000; MCF_DMA_DMAREQC = 0x0000000C; // DMA通道0设定为UART0发送 MCF_DMA_DSR0 = 0x01000000; // 清除DSR寄存器 MCF_DMA_DSR0 |= 0x00000010; // 设定发送数据共16Byte MCF_DMA_SAR0 = 0x20001538; // 源数据地址 MCF_DMA_DAR0 = 0x4000020C; // 目的数据地址(UART0发送数据寄存器) MCF_DMA_DCR0 = 0x20520000; // 源地址++,目标地址不变 MCF_DMA_DCR0 |= 0x00010000; // 启动DMA发送
其中UART0中断已经关闭,并且其能正常发送数据
恳望知道朋友能不吝赐教,谢谢! |