stm32g474調試記錄,ad、da定時器觸發dma傳輸


使用stm32g474ret6,由於程序是在stm32f446上改的,所以硬件驅動上出了很多問題:

1、RTC不走,因為沒開bkp寫使能,筆誤
2、AD不對,因為引腳配置沒有給模擬,與F303不同
3、IO不對,因為不支持位帶。

  g474的GPIO在AHB2,0x48000000這個范圍。可通過定義位段的方式解決不支持位帶的問題。
4、DMA不對,因為DMAMUX的通道是DMA通道號減1
5、AD的觸發不對,因為需要給ADSTART才開始觸發,與F303不同
6、DA的觸發不對,DAC只能按32bit訪問,導致dma傳輸錯誤(TE)。修改了DMA位寬后成功
7、AD、DA的DMA同步不對,每次AD的DMA傳輸完成后的中斷,DA的dma是對的,AD的dma還有值沒有完成。原因:AD的DMA開了循環模式,關掉就好了
8、flash在寫解鎖時錯誤:MFLASH->KEYR=0xCDEF89AB;進入hardfault。原因:自己定義的位段方式方位flash寄存器,結構定義錯位
9、flash擦除失敗:頁大小錯誤,導致計算的頁號錯誤。這芯片默認是雙頁模式,2KB的頁大小
10、進入standby后立刻喚醒,原因:多使能了wukp
11、睡眠時燈是亮的,原因:PA15的復位值是上拉的
12、下載后報錯,這是最開始的問題,一直到最后才解決。

下載時報錯內容:
Erase Done.
Programming Done.
Contents mismatch at: 080027B6H  (Flash=64H  Required=96H) !
Contents mismatch at: 080027C6H  (Flash=6EH  Required=96H) !
Contents mismatch at: 080027CCH  (Flash=EEH  Required=96H) !
Contents mismatch at: 080027CDH  (Flash=E7H  Required=20H) !
Contents mismatch at: 080027CEH  (Flash=00H  Required=FDH) !

除非全片擦除后,去掉verify,可以正常調試,但這樣每次都全片擦除,會影響存在flash中的配置信息。
使用帶stlink的NUCLEO-G474RE開發板,keil 5.27仍然報同樣錯誤,使用stm32cubeide后,提示stlink需要升級,升級后仍然不行。查到
http://www.stmcu.org.cn/module/forum/thread-622538-1-7.html
后,在Keil.STM32G4xx_DFP.pdsc文件中,<device Dname="STM32G474RCTx">處增加STM32G4xx_512_Dual.FLM后,在flash下載選項中選擇此文件指明是Dual的flash,解決。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM