系統時鐘是GD32 MCU的時基,可以理解為系統的心跳,片上所有的外設以及CPU最原始的時鐘都來自于系統時鐘,因而明確當前系統時鐘是多少非常重要,只有明確了系統時鐘,才能夠實現準確的定時、準確的采樣間隔以及準確的通信速率等。
以GD32F303為例,其系統時鐘配置在system_gd32f30x.c中,如下圖所示,可以通過打開或者關閉相關的宏定義進行時鐘配置,GD32以及提供了一些時鐘配置的函數,可以通過宏定義開關進行選擇。
![wKgaomW6-PyAQMpFAAVsZwjyB2g335.png](https://file1.elecfans.com/web2/M00/C0/15/wKgaomW6-PyAQMpFAAVsZwjyB2g335.png)
確認當前系統時鐘有以下兩個方法:
1、軟件方式確認
使用void SystemCoreClockUpdate(void)函數進行更新當前系統時鐘SystemCoreClock,該函數為根據當前RCU模塊寄存器配置以及外部晶振等相關宏定義進行計算,將計算的結果賦值給SystemCoreClock變量,因而調用該函數后,SystemCoreClock的值就是當前系統時鐘的數值。
![wKgZomW6-QGAGBIJAAMnCBdBgBg398.png](https://file1.elecfans.com/web2/M00/BF/28/wKgZomW6-QGAGBIJAAMnCBdBgBg398.png)
需要注意,如果外部晶振不是8M,則需要調整HXTAL的宏定義,否則可能會造成SystemCoreClock計算出錯。
![wKgaomW6-QaAce9EAAG4Cu_wk3o573.png](https://file1.elecfans.com/web2/M00/C0/15/wKgaomW6-QaAce9EAAG4Cu_wk3o573.png)
2、時鐘輸出確認
另外一種最直接最準確的方式,是將系統時鐘通過CKOUT引腳輸出,然后通過示波器進行查看,如下圖所示,CK_SYS為系統時鐘,將CKOUT0SEL配置為100,就可以將系統時鐘輸出到CK_OUT0引腳上,這樣外部接示波器就可以查看當前系統時鐘了。
![wKgZomW6-QqAd_ZPAABGaK8yE68462.png](https://file1.elecfans.com/web2/M00/BF/28/wKgZomW6-QqAd_ZPAABGaK8yE68462.png)
另外也可以通過定時器或者通信頻率來進行估算,希望大家在系統開發伊始有確認系統時鐘的好習慣,避免由于系統時鐘配置出錯導致的隱藏問題。
好的,今天就討論到這里,如有其他疑問,歡迎評論區討論。
-
mcu
+關注
關注
146文章
17318瀏覽量
352649 -
系統時鐘
+關注
關注
1文章
30瀏覽量
9363 -
GD32
+關注
關注
7文章
413瀏覽量
24470
發布評論請先 登錄
相關推薦
GD32 MCU 入門教程】GD32 MCU 常見外設介紹(12)FMC 模塊介紹
![<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> 入門教程】<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> 常見外設介紹(12)FMC 模塊介紹](https://file1.elecfans.com/web2/M00/04/87/wKgaombFSS2AWG-GAAB5lPnhR3c604.png)
![](https://file1.elecfans.com/web2/M00/C0/2F/wKgaomW8SMuAXkpiAAsuERbvzgo330.png)
GD32替換STM32?這些坑你別踩...
GD32 MCU學習這本書的理由
《GD32 MCU原理及固件庫開發指南》+讀后感
兆易創新GD32 MCU選型手冊,適用于GD32全系列MCU
【GD32 MCU 入門教程】GD32 MCU 常見外設介紹(14)RTC 模塊介紹
![【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> 入門教程】<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> 常見外設介紹(14)RTC 模塊介紹](https://file1.elecfans.com/web2/M00/03/E0/wKgZombH42WAIyq2AAA3DFzN548758.png)
【GD32 MCU入門教程】GD32 MCU GPIO 結構與使用注意事項
![【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>入門教程】<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> GPIO 結構與使用注意事項](https://file1.elecfans.com/web2/M00/06/89/wKgaombbu8qAXdJKAAAW--yDqzA279.png)
評論