標(biāo)題: STM32F103的DMA能否實(shí)現(xiàn)外設(shè)到外設(shè),內(nèi)存到內(nèi)存的傳輸? [打印本頁(yè)]

作者: 單片機(jī)小白一個(gè)    時(shí)間: 2019-7-29 14:43
標(biāo)題: STM32F103的DMA能否實(shí)現(xiàn)外設(shè)到外設(shè),內(nèi)存到內(nèi)存的傳輸?
求助。。!STM32F103的DMA存儲(chǔ)器到存儲(chǔ)器   以及     外設(shè)到外設(shè)傳輸程序如何編寫?
庫(kù)函數(shù)版本的傳輸方向庫(kù)里面只給了(((DIR) == DMA_DIR_PeripheralDST) || \((DIR) == DMA_DIR_PeripheralSRC))兩個(gè)選項(xiàng),在網(wǎng)上找的例程有DMA_DIR_MemoryToMemory,但是庫(kù)里面好像沒(méi)有,一寫就報(bào)錯(cuò)
還有,存儲(chǔ)器到存儲(chǔ)器傳輸?shù)脑,?yīng)該選擇哪個(gè)通道?數(shù)據(jù)手冊(cè)額里面只寫了    當(dāng)設(shè)置了DMA_CCRx寄存器中的MEM2MEM位之后,在軟件設(shè)置了DMA_CCRx寄存器中的EN位啟動(dòng)DMA通道時(shí), DMA傳輸將馬上開(kāi)始。當(dāng)DMA_CNDTRx寄存器變?yōu)?時(shí), DMA傳輸結(jié)束  ,沒(méi)有寫選擇哪個(gè)通道
各位大佬幫幫忙

作者: cjm82    時(shí)間: 2019-7-29 22:37
存儲(chǔ)器到存儲(chǔ)器是有的.
外設(shè)到外設(shè)沒(méi)聽(tīng)過(guò),不過(guò)也不難實(shí)現(xiàn),讓DMA的兩個(gè)通道指向同一個(gè)地址,一個(gè)設(shè)置為存儲(chǔ)器到外設(shè),另一個(gè)設(shè)為外設(shè)到存儲(chǔ)器,然后分開(kāi)觸發(fā).
F103的DMA一共就兩個(gè)...DMA2只有大容量的才有.至于哪個(gè)通道,這個(gè)我沒(méi)試過(guò),你可以做實(shí)驗(yàn)試試,我猜的話,如果是存儲(chǔ)器對(duì)存儲(chǔ)器,應(yīng)該是隨便哪個(gè)通道都可以,只要設(shè)置好兩個(gè)地址.
作者: yzwzfyz    時(shí)間: 2019-7-30 08:50
外設(shè)置的工作方式由外設(shè)定,
你要做的是讓出總線,不要干擾到外設(shè)工作,因?yàn)橥庠O(shè)這時(shí)要利用總線。
根據(jù)外設(shè)的要求,與外設(shè)做個(gè)握手,讓彼此知道DMA的開(kāi)始與結(jié)束。以便你收回總線使用權(quán)。

作者: 單片機(jī)小白一個(gè)    時(shí)間: 2019-8-1 16:30
cjm82 發(fā)表于 2019-7-29 22:37
存儲(chǔ)器到存儲(chǔ)器是有的.
外設(shè)到外設(shè)沒(méi)聽(tīng)過(guò),不過(guò)也不難實(shí)現(xiàn),讓DMA的兩個(gè)通道指向同一個(gè)地址,一個(gè)設(shè)置為存儲(chǔ) ...

我用的是F103VET6,是大容量的,有DMA2,我剛才試了通道1和4,都不行




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1