UART接收与发送不能同时用DMA?
我看startware中的例程
启动发送前:UARTDMAEnable(, UART_RX_TRIG_LEVEL_1 | UART_DMAMODE | UART_FIFO_MODE);
DMA发送后:UARTDMADisable(, UART_RX_TRIG_LEVEL_1 | UART_FIFO_MODE);
启动接收:UARTDMAEnable(, UART_RX_TRIG_LEVEL_1 | UART_DMAMODE | UART_FIFO_MODE);
DMA接收完成后:UARTDMADisable(, UART_RX_TRIG_LEVEL_1 | UART_FIFO_MODE);
实现:
是用DMA接收串口数据到buffer(fifo),接收需要一直工作;
发送则是突发操作,当调用发送函数时才启动发送DMA;
如此问题就来了,如果启动发送,发送完成后把DMA禁止了,同时也禁止了接收的DMA;
不知道理解有没有错?
如果理解错误,那又如何保证相互不影响?