我們知道,MCU的系統(tǒng)時鐘主頻就相當于人的心跳或脈搏,為所有的工作單元提供時間基數(shù),所以一般在程序最開始的地方都需要進行主頻配置。
GD32固件庫中提供了多種宏定義,可以很方便的將系統(tǒng)時鐘配置為想要的頻率。

GD32固件庫中所用的外部晶振配置一般為8M或25M,如果想要使用其他頻率的晶振,可以參考FAQ《更改晶振后如何修改配置》。
有的小伙伴在做好PCB后,將程序下載進去發(fā)現(xiàn)運行異常,想要仿真查下原因時,發(fā)現(xiàn)下載不了程序了,這時候就要注意,是不是板子上的晶振和程序中配置的不匹配?比如程序中使用的晶振大小為8M,但板子上的是12M的晶振,結果你以為配置的是120M的主頻,實際變成了180M了,這超頻可太多了,當然就無法再下載程序啦。


那如何解決這個問題呢?有個方法就是讓MCU進入ISP模式,小伙伴們可以參考FAQ《GD32 MCU進入低功耗模式導致無法再進行程序下載怎么辦?》中的“方法一”,和超頻無法下載類似。
我們今天講述另一種方法,那就是啟動MCU的時候,用鑷子把外部晶振的OSC_IN和OSC_OUT腳短接起來,然后把程序擦除即可。沒錯,就是這么簡單粗暴。

原理其實也很簡單,使用GD32 固件庫時,一般在進入main函數(shù)之前都會進行系統(tǒng)時鐘配置,配置函數(shù)中在開啟外部晶振后會有等待晶振穩(wěn)定的過程,如果在一定時間內無法穩(wěn)定,則會進入while(1)循環(huán)(小伙伴們可以自行增加超時退出的操作哦),在這個過程中,MCU實際是使用內部高速晶振在跑的,沒超頻,當然就可以擦除程序啦,用鑷子短接晶振,就是為了讓晶振狀態(tài)無法穩(wěn)定,是不是很簡單呢?

利用類似原理,其實還有其他操作也可以解決,小伙伴們有想到嗎?沒錯,就是把晶振從板子上拆下來,等程序被擦除后,再焊接回去。
其實這個方法也適用于進入低功耗后無法下載的問題,當然前提是用的外部晶振。
好了,今天的內容就這些,如果還沒有學廢,那就評論區(qū)聊聊吧~記得點贊收藏加關注
-
單片機
+關注
關注
6078文章
45599瀏覽量
674121 -
mcu
+關注
關注
147文章
19165瀏覽量
404890 -
嵌入式
+關注
關注
5210文章
20685瀏覽量
337511 -
硬件開發(fā)
+關注
關注
3文章
195瀏覽量
25221
發(fā)布評論請先 登錄
兆易創(chuàng)新GD32 MCU如何續(xù)寫嵌入式創(chuàng)新之路
兆易創(chuàng)新正式推出GD32 Embedded AI平臺
keil5使用中文路徑安裝.pack后綴報錯的解決辦法
MCU200T開發(fā)板報錯\'Launching hello Debug\' has encountered a problem的解決辦法
兆易創(chuàng)新GD32 MCU家族高性能產品再添新銳:GD32F503/505系列芯片實力亮相
在Nuclei IDE中燒寫程序無法成功的原因及部分解決辦法
調試報錯:timed out waiting for debug int to clear 解決辦法
openocd failed with code (1)的一種解決辦法
時序約束問題的解決辦法
GD32的串口DMA收發(fā)數(shù)據失敗怎么解決?
rt_thread studio import gd32h759i_start 失敗的原因?
rt-thread studio中創(chuàng)建不了gd32項目是怎么回事?
基于兆易創(chuàng)新GD32系列MCU的GUI智能屏顯解決方案
GD32 MCU超頻后無法再次下載程序的解決辦法
評論