STM32H7系列使用DMA不能傳輸資料的問題

2021-09-26 15:50:40 字數 568 閱讀 7841

我使用dma進行spi傳輸時發現無資料,還好有個邏輯分析儀,不然有沒有訊號都不知道

這是匯流排訪問許可權的圖。

「-」表示不能訪問。「d」表示直接訪問。其它的都是間接訪問。

發現dma1只有itcm和dtcm不能訪問,問題就出在這。

有句「tcm 介面上的 dtcm-ram 對映到位址 0x2000 0000,可供 cortex®-m7 訪問......」。(m7是處理器核)

記憶體分布:

dtcm雖然和其它的mcu的ram起始位址一樣,但是無法被dma訪問。

也就是通用ram的位址變了,但是編譯器還是會把dtcm的位址作為通用ram的起始位址。

使用dma傳輸時把記憶體起始位址修改為d1域。也就是把勾打在ram2上。這是最簡單的解決方法。

makefile工程:

只要變數不在dtcm裡就行。

STM32H7 輸入捕獲(cubemax和hal)

簡述 使用tim2捕獲pwm ide keilv5.27 firmware package stm32cube fw h7 v1.8.0 晶元 stm32h750vbt6 開啟tim2輸入捕獲 配置psc為200 1,這裡主要是方便計算,計時器加一正好是1微妙。我配置的h750的主頻為400m,ap...

stm32h7記憶體分配 談談H7的記憶體分配以及總結

首先呢,大家在使用h743 的時候,在keil或者iar中,有乙個記憶體的勾選,如圖1,irom1表示flash的記憶體位址,h743是2m,所以,大小自然是2m,起始位址可以在參考手冊中找到,如圖2,這個比較容易理解,程式就是從這開始執行。其次,是ram,743內部有1m,那麼這1m怎麼分的呢,直...

STM32外設DMA使用總結

stm32外設dma使用總結 1 根據需要選擇dam模式 1 迴圈模式 dma mode dma mode circular 2 正常模式 dma mode dma mode normal 2 對於dma1的chanel3,對應外設為usart3的rx 試想 如果串列埠接收中斷和dam中斷同時開啟,...