你好 谢谢
下面是URAT0_TX的DMA9以及中断的配置
void Init_DMA_UART(void)
{
*pDMA9_START_ADDR = TxBuf;
ssync;
*pDMA9_X_COUNT = 722;
ssync;
*pDMA9_X_MODIFY = 1;
ssync;
*pDMA9_PERIPHERAL_MAP = 0x9000;
ssync;
*pDMA9_CONFIG = WDSIZE_8 | DI_EN | DMAEN | SYNC;
ssync;
}
void Init_DMA9_Interrupt(void)
{
*pSIC_IAR2 = 0x1fffffff ;
register_handler(ik_ivg10, DMA9_UART_ISR);
*pSIC_IMASK0 =1<<23;
ssync;
}
EX_INTERRUPT_HANDLER(DMA9_UART_ISR)
{
*pDMA9_IRQ_STATUS = 0x1;
Disable_DMA_UART();
*pUART0_GCTL &= ~UCEN;
}
主函数中
if(*pUART0_LSR & THRE)
{
Init_DMA_UART();
}
可以通过 Init_DMA_UART()打印出数据了 但是会一直输出 在里面一直循环 不进中断 不明白需要怎么设置?
「该帖子被 unconscious 在 2014-04-18 15:20:25 编辑过」