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

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


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

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

利用類似原理,其實還有其他操作也可以解決,小伙伴們有想到嗎?沒錯,就是把晶振從板子上拆下來,等程序被擦除后,再焊接回去。
其實這個方法也適用于進(jìn)入低功耗后無法下載的問題,當(dāng)然前提是用的外部晶振。
好了,今天的內(nèi)容就這些,如果還沒有學(xué)廢,那就評論區(qū)聊聊吧~記得點贊收藏加關(guān)注
-
單片機(jī)
+關(guān)注
關(guān)注
6076文章
45500瀏覽量
670700 -
mcu
+關(guān)注
關(guān)注
147文章
18938瀏覽量
398675 -
嵌入式
+關(guān)注
關(guān)注
5200文章
20458瀏覽量
334360 -
硬件開發(fā)
+關(guān)注
關(guān)注
3文章
190瀏覽量
25178
發(fā)布評論請先 登錄
兆易創(chuàng)新GD32 MCU如何續(xù)寫嵌入式創(chuàng)新之路
兆易創(chuàng)新正式推出GD32 Embedded AI平臺
keil5使用中文路徑安裝.pack后綴報錯的解決辦法
MCU200T開發(fā)板報錯\'Launching hello Debug\' has encountered a problem的解決辦法
在Nuclei IDE中燒寫程序無法成功的原因及部分解決辦法
調(diào)試報錯:timed out waiting for debug int to clear 解決辦法
解決程序無法下載問題
openocd failed with code (1)的一種解決辦法
GD32的串口DMA收發(fā)數(shù)據(jù)失敗怎么解決?
rt-thread studio中創(chuàng)建不了gd32項目是怎么回事?
基于兆易創(chuàng)新GD32系列MCU的GUI智能屏顯解決方案
兆易創(chuàng)新GD32 MCU閃耀2025慕尼黑上海電子展
GD32 MCU超頻后無法再次下載程序的解決辦法
評論