使用相同F(xiàn)LASH和管腳數(shù)量相同的芯片,例如GDF103C8T6移植STM32F103C8T6程序。雖然兩個(gè)款芯片的寄存器地址以及架構(gòu)基本相同。但是需要注意的是GD32F10x主頻是108兆,但是STM32F10x主頻是72兆。所以需要針對(duì)以RCC時(shí)鐘進(jìn)行修改。
例如打開原子哥的ALIENTEK MINISTM32 實(shí)驗(yàn)8 PWM輸出實(shí)驗(yàn)例程
先將芯片的選項(xiàng)進(jìn)行修改
然后將STM32的啟動(dòng)文件替換成GD的啟動(dòng)文件,關(guān)于STM32啟動(dòng),點(diǎn)擊:詳解STM32啟動(dòng)文件。
當(dāng)然也可以不替換,我這里選擇替換掉。
然后就想修改時(shí)鐘相關(guān)配置
①打開stm32f10x.h文件,找到定義
//#define HSE_STARTUP_TIMEOUT ((uint16_t)0x0500) /*!< Time out for HSE start up/
修改為
#define HSE_STARTUP_TIMEOUT ((uint16_t)0xFFFF) /!< Time out for HSE start up */
這是因?yàn)镚D頻率高,并且穩(wěn)定內(nèi)部8兆的時(shí)鐘HSE需要更多的時(shí)間,這里給滿。
②修改system_stm32f10x.c文件
按照72MHz方式,添加108兆代碼
1)
改為
2)將
改為
3)將
改為
STM32的27位28位是保留的,但是GD的是用來配合PLL倍頻的
在最后添加108兆的時(shí)鐘配置程序
全局時(shí)鐘配置寄存器在GD中命名時(shí)RCC_GCFGR,在STM32中命名為RCC_CFGR,關(guān)于PLL倍頻系數(shù)配置PLLMF不同,紅框內(nèi)是先將HSE(8兆)分頻為2得到4兆,然后27倍頻得到108兆。
這時(shí)就得到了108兆的主頻時(shí)鐘
然后修改讀取時(shí)鐘的函數(shù)void RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks)
當(dāng)發(fā)現(xiàn)時(shí)RCC_CFGR第27位置位了,就將倍頻數(shù)從12+15 = 27.
至此,GD32F103移植ST32F103的工程就修改完成了,就可以盡情的使用ST的庫代碼了。有問題可以聯(lián)系我,拉你入技術(shù)群交流學(xué)習(xí)。
審核編輯:湯梓紅
-
芯片
+關(guān)注
關(guān)注
455文章
50812瀏覽量
423583 -
寄存器
+關(guān)注
關(guān)注
31文章
5343瀏覽量
120348 -
移植
+關(guān)注
關(guān)注
1文章
379瀏覽量
28130 -
STM32F103
+關(guān)注
關(guān)注
33文章
477瀏覽量
63651 -
GD32F103
+關(guān)注
關(guān)注
5文章
18瀏覽量
9440
原文標(biāo)題:在GD32F103移植STM32F103代碼
文章出處:【微信號(hào):ARM與嵌入式,微信公眾號(hào):ARM與嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論