加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

STM32H750更改時鐘后,程序無法運(yùn)行怎么辦

12/17 13:43
160
閱讀需 3 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

提問

為了驗(yàn)證H750主時鐘頻率和功耗的關(guān)系:

用STM32CUBEMX配置STM32H750VBT6的主時鐘為:100MHz,程序可以正常運(yùn)行,然后將主時鐘改至120MHz,發(fā)現(xiàn)程序無法運(yùn)行,再改回100MHz,程序仍然無法運(yùn)行,程序里面只寫了一個定時器點(diǎn)亮LED燈,想咨詢一下各位大佬,是不是H750的時鐘不能隨便修改?但是我另外一塊板子設(shè)置成120MHz可以正常運(yùn)行,很奇怪,謝謝

最新回答

  • 芯片內(nèi)部系統(tǒng)時鐘是可以動態(tài)調(diào)整的,你這里應(yīng)該是用到PLL了。

    我們重新配置PLL時要保證PLL是關(guān)閉的,否則如果強(qiáng)行配置,PLL的輸出頻率沒有保障,可能正確、也可能不符合預(yù)期。

    建議做PLL的修改前,找個別的時鐘源作為系統(tǒng)時鐘過渡下,新的PLL配置生效后,再切換回來。

    如果不這樣操作,而是基于相同時鐘源做PLL的配置來修改系統(tǒng)時鐘,并調(diào)用庫函數(shù)SystemClock_Config()寫法的話,可能出現(xiàn)

    參數(shù)或狀態(tài)檢查失效而發(fā)生出錯,進(jìn)而跳進(jìn)出錯函數(shù)Error_Handler()的while死循環(huán)里而無法運(yùn)行別的了,這時給人感覺就是程序不運(yùn)行了。

    當(dāng)然,我在測試過程中嘗試強(qiáng)行將相關(guān)參數(shù)或狀態(tài)檢查代碼屏蔽掉也能過,新的系統(tǒng)時鐘也能生效,但這樣畢竟不規(guī)范。

  • 既然另一塊板子能跑120MHZ的話,那么理論上都應(yīng)該可以的。

    至于第一塊板子具體發(fā)生了什么還真不好猜,這時候就要看調(diào)試工具大顯身手了。

    通過調(diào)試,看看定時器的狀況,代碼狀況是否發(fā)生了異常。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜