This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Dear everyone:
想請問一下使用DMA來進行SPI的傳輸,能夠不要重新設定DMA transfer就改變傳輸資料的大小嗎?
以及例如我使用了範例的SPI loopback,第一次傳輸128的byte接收完全沒問題,在第二次傳輸前重新config transfer成64byte,但這樣中間會有一整段是空白的是為什麼呢?
以上,謝謝
你好,
第一次傳輸128的byte接收完全沒問題,在第二次傳輸前重新config transfer成64byte
第一次是没有对例程做改动,第二次做了改动是吗?你的改动在什么地方能否说明一下?
您好 謝謝您的回覆,
其實我主要是想要問說在code運作的途中,DMA的傳輸大小是可變動的嗎?有沒有相關的範例可以參考一下。
為了測試能不能更改傳輸的大小,我才做了以下實驗
我在進行第二次傳輸前,修改了transfer的size,但這樣接收的資料會有問題。
改動如下面的code
for(j=0;j<2;j++){ for(i = 0; i < 128; i++) { sData[i] = i*(j+1); rData[i]= 0; } done = 0; DMA_startChannel(mySPI0_TX_DMA_BASE); DMA_startChannel(mySPI0_RX_DMA_BASE); while(!done); DMA_configTransfer(mySPI0_TX_DMA_BASE, 8U, 0, 1); DMA_configTransfer(mySPI0_RX_DMA_BASE, 8U, 0, 1); }
以上, 謝謝