我将 LinFlexD 配置为 UART 模式并设置 DMA 通道 0 进行传输,但它触发了目标总线错误。我不确定如何解决此问题。代码如下。我错过了什么吗?
LINFLEX_3.LINCR1.B.INIT = 1;
LINFLEX_3.LINCR1.B.SLEEP = 0;
LINFLEX_3.LINCR1.B.BF = 0;
LINFLEX_3.UARTCR.B.UART = 1;
LINFLEX_3.UARTCR.B.RXEN = 1;
LINFLEX_3.UARTCR.B.TXEN = 1;
LINFLEX_3.UARTCR.B.WL0 = 1;
LINFLEX_3.UARTCR.B.PC0 = 1;
LINFLEX_3.UARTCR.B.PCE = 0;
LINFLEX_3.UARTCR.B.TFBM = 1;
// LINFLEX_3.UARTCR.B.RFBM = 1;
LINFLEX_3.LINIBRR.B.DIV_M = 20 * 10000 / 96 / 16; // 250k // Baud Rate = 9600, In Case fperi1 = 80 MHz
LINFLEX_3.LINFBRR.B.DIV_F = 0; // 7 // Baud Rate = 9600, In Case fperi1 = 80 MHz
LINFLEX_3.LINIER.B.DRIE = 1;
LINFLEX_3.UARTSR.B.DRFRFE = 1; // Clear Data Recep
tion Completed Flag
LINFLEX_3.UARTSR.B.DTFTFF = 1; // Clear Data Transmission Completed Flag
LINFLEX_3.LINCR1.B.INIT = 0; // Normal Mode
LINFLEX_3.DMATXE.B.DTE0 = 1;
// LINFLEX_3.DMARXE.B.DRE0 = 1;
DMAMUX_0.CHCONFIG[0].R = 0xA5;
// DMAMUX_0.CHCONFIG[1].B.ENBL = 1; // channel 1 uart rx
// DMAMUX_0.CHCONFIG[1].B.TRIG = 0;
// DMAMUX_0.CHCONFIG[1].B.SOURCE = 0x26;
EDMA_0.TCD[0].CITER = 0x8;
EDMA_0.TCD[0].BITER = 0x8;
EDMA_0.TCD[0].NBYTES = 0x1;
EDMA_0.TCD[0].SADDR = (uint32) lin3_tx_buffer[0];
EDMA_0.TCD[0].SOFF = 0x1;
EDMA_0.TCD[0].SSIZE = 0;
EDMA_0.TCD[0].SLAST = 0xFFFFFFFFFFFFFFF8;
EDMA_0.TCD[0].DADDR = (uint32)( LINFLEX_3.BDRL) + 3;
EDMA_0.TCD[0].DOFF = 0;
EDMA_0.TCD[0].DSIZE = 0;
EDMA_0.TCD[0].D_REQ = 1;
EDMA_0.TCD[0].INT_MAJ = 1;
EDMA_0.DMAERQL.B.ERQ00 = 1;
0