GD32官方提供的固件庫中使用的晶振配置一般為8M或25M,如果讀者使用其他頻率的晶振如何修改配置呢?本文為大家講解如何修改。
以GD32F303為例,官方固件庫中的晶振及時鐘配置代碼如下,改配置代碼為使用外部8M晶振倍頻到120M時鐘。
在此我們舉例,若外部晶振使用16M該如何配置,主要修改以下兩點:
修改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 */
修改時鐘倍頻到120M.如下紅色底紋部分,配置15倍頻,計算公式為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固件庫中修改使用內部時鐘非常方便,只要打開內部時鐘的宏定義就可以啦。
/* 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)
-
晶振
+關注
關注
34文章
2899瀏覽量
68311 -
編程
+關注
關注
88文章
3637瀏覽量
93981 -
GD32
+關注
關注
7文章
413瀏覽量
24468 -
gd32f303
+關注
關注
4文章
38瀏覽量
3718
發布評論請先 登錄
相關推薦
評論