使用 MCU 硬件 SPI 接口时、预计 DMA 可以配置为块传输、传输字节为4字节、使用 DMA4通道、并且4个通道的触发模式由软件触发、具体代码如下。
;长度= 4 μ s
DMACTL1 = DMA3TSEL__UCA3RXIFG;//根据 SLASE54C 表6-11
DMACTL2 = 0;
// SPI Rx 端:单个、字节、递增目的、不是源。
_data20_write_long ((uintptr_t)和 DMA3SA、(uintptr_t)和 UCA3RXBUF);//_SFR_FARPTR 响应
_data20_write_long ((uintptr_t)和 DMA3DA、(uintptr_t) DataRx);//__SFR_FARPTR 响应
DMA3SZ =字节长度;
DMA3CTL= DMADT_1| DMADSTINCR_3| DMASRCINCR_0| DMADSTBYTE | DMASRCBYTE ;
DMA3CTL |= DMAEN;
DMA4CTL |= DMAEN;
DMA4SZ =字节长度;
//计时器+SPI Tx 侧:单个,字节,增量源,非目的
_data20_write_long ((uintptr_t)和 DMA4SA、(uintptr_t) DataTx);//__SFR_FARPTR 响应
_data20_write_long ((uintptr_t)和 DMA4DA、(uintptr_t)和 UCA3TXBUF);//_SFR_FARPTR 响应
DMA4CTL= DMADT_1| DMADSTINCR_0| DMASRCINCR_3| DMADSTBYTE | DMASRCBYTE ;
但在实际情况下、它只会发送16位、不会发出任何数据、请问这样的配置是否有问题? 同时、Rx 通道通过配置 DMA3通道并使用 RxIFG 作为触发源来获取4个字节的数据