GD32官方提供的固件庫(kù)中使用的晶振配置一般為8M或25M,如果讀者使用其他頻率的晶振如何修改配置呢?本文為大家講解如何修改。
以GD32F303為例,官方固件庫(kù)中的晶振及時(shí)鐘配置代碼如下,改配置代碼為使用外部8M晶振倍頻到120M時(shí)鐘。
在此我們舉例,若外部晶振使用16M該如何配置,主要修改以下兩點(diǎn):
修改HXTAL_VALUE為16M,如下紅色底紋部分。
#if !defined HXTAL_VALUE #ifdef GD32F30X_CL #define HXTAL_VALUE ((uint32_t)25000000) /*!< value of the external oscillator in Hz */ #else #define HXTAL_VALUE ((uint32_t)16000000) /* !< from 4M to 32M *!< value of the external oscillator in Hz*/ #endif /* HXTAL_VALUE */ #endif /* high speed crystal oscillator value */
修改時(shí)鐘倍頻到120M.如下紅色底紋部分,配置15倍頻,計(jì)算公式為16M/2*15=120M.
/* select HXTAL/2 as clock source */ RCU_CFG0 &= ~(RCU_CFG0_PLLSEL | RCU_CFG0_PREDV0); RCU_CFG0 |= (RCU_PLLSRC_HXTAL_IRC48M | RCU_CFG0_PREDV0); /* CK_PLL = (CK_HXTAL/2) * 15 = 120 MHz */ RCU_CFG0 &= ~(RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4 | RCU_CFG0_PLLMF_5); RCU_CFG0 |= RCU_PLL_MUL15;
PS:GD固件庫(kù)中修改使用內(nèi)部時(shí)鐘非常方便,只要打開(kāi)內(nèi)部時(shí)鐘的宏定義就可以啦。
/* select a system clock by uncommenting the following line */ /* use IRC8M */ //#define __SYSTEM_CLOCK_IRC8M (uint32_t)(__IRC8M) //#define __SYSTEM_CLOCK_48M_PLL_IRC8M (uint32_t)(48000000) //#define __SYSTEM_CLOCK_72M_PLL_IRC8M (uint32_t)(72000000) //#define __SYSTEM_CLOCK_108M_PLL_IRC8M (uint32_t)(108000000) //#define __SYSTEM_CLOCK_120M_PLL_IRC8M (uint32_t)(120000000)
-
晶振
+關(guān)注
關(guān)注
34文章
2859瀏覽量
68004 -
編程
+關(guān)注
關(guān)注
88文章
3614瀏覽量
93685 -
GD32
+關(guān)注
關(guān)注
7文章
403瀏覽量
24326 -
gd32f303
+關(guān)注
關(guān)注
4文章
38瀏覽量
3685
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論