我們知道,MCU的系統時鐘主頻就相當于人的心跳或脈搏,為所有的工作單元提供時間基數,所以一般在程序最開始的地方都需要進行主頻配置。
GD32固件庫中提供了多種宏定義,可以很方便的將系統時鐘配置為想要的頻率。
GD32固件庫中所用的外部晶振配置一般為8M或25M,如果想要使用其他頻率的晶振,可以參考FAQ《更改晶振后如何修改配置》。
有的小伙伴在做好PCB后,將程序下載進去發現運行異常,想要仿真查下原因時,發現下載不了程序了,這時候就要注意,是不是板子上的晶振和程序中配置的不匹配?比如程序中使用的晶振大小為8M,但板子上的是12M的晶振,結果你以為配置的是120M的主頻,實際變成了180M了,這超頻可太多了,當然就無法再下載程序啦。
那如何解決這個問題呢?有個方法就是讓MCU進入ISP模式,小伙伴們可以參考FAQ《GD32 MCU進入低功耗模式導致無法再進行程序下載怎么辦?》中的“方法一”,和超頻無法下載類似。
我們今天講述另一種方法,那就是啟動MCU的時候,用鑷子把外部晶振的OSC_IN和OSC_OUT腳短接起來,然后把程序擦除即可。沒錯,就是這么簡單粗暴。
原理其實也很簡單,使用GD32 固件庫時,一般在進入main函數之前都會進行系統時鐘配置,配置函數中在開啟外部晶振后會有等待晶振穩定的過程,如果在一定時間內無法穩定,則會進入while(1)循環(小伙伴們可以自行增加超時退出的操作哦),在這個過程中,MCU實際是使用內部高速晶振在跑的,沒超頻,當然就可以擦除程序啦,用鑷子短接晶振,就是為了讓晶振狀態無法穩定,是不是很簡單呢?
利用類似原理,其實還有其他操作也可以解決,小伙伴們有想到嗎?沒錯,就是把晶振從板子上拆下來,等程序被擦除后,再焊接回去。
其實這個方法也適用于進入低功耗后無法下載的問題,當然前提是用的外部晶振。
好了,今天的內容就這些,如果還沒有學廢,那就評論區聊聊吧~記得點贊收藏加關注
-
單片機
+關注
關注
6037文章
44562瀏覽量
635827 -
mcu
+關注
關注
146文章
17168瀏覽量
351410 -
嵌入式
+關注
關注
5083文章
19133瀏覽量
305657 -
硬件開發
+關注
關注
3文章
158瀏覽量
24192
發布評論請先 登錄
相關推薦
評論