前面給小伙伴介紹過串口發(fā)送和接收異??赡艿囊恍┰?,其中就有說到時鐘頻率對于異步通訊的重要性。而我們通過程序去配置的時鐘都是理論值,那如果想要獲得內(nèi)部一些時鐘頻率的實際值,需要怎樣做呢?今天,我們以GD32F303為例來教大家如何通過PA8口輸出內(nèi)部時鐘頻率(有些GD32系列不一定是使用PA8口,小伙伴們需要自行查找資料確認)。
首先我們來看下GD32F303的時鐘樹:

其中左下角的位置有一個CK_OUT0的鏈接圖:

根據(jù)圖示,我們看到通過CK_OUT0可以將系統(tǒng)時鐘(CK_SYS)、內(nèi)部高速晶振(CK_IRC8M)、外部晶振(CK_HXTAL)以及PLL的二分之一頻率輸出出來,實際上,CK_OUT0就是PA8引腳,我們來看下GD32F303 Datasheet中的管腳定義:

可以看到PA8口的一個Alternate類型功能為CK_OUT0,所以我們需要配置PA8為復(fù)用類型。
另外在庫文件gd32f30x_rcu.c中定義了時鐘輸出函數(shù)rcu_ckout0_config,在函數(shù)注釋中已經(jīng)將可調(diào)用的參數(shù)列出,但需要注意,紅色方框以外的參數(shù)僅可用于GD32F305/307即互聯(lián)型(CL)產(chǎn)品,小伙伴們可以自行查看GD32F30x系列HD和CL產(chǎn)品系列時鐘樹的不同哦。

好,了解到以上內(nèi)容,使用輸出PA8口輸出內(nèi)部時鐘頻率就很簡單了,比如想要實現(xiàn)PA8輸出外部高速晶振的頻率,可以編寫程序如下:

將這段程序下載到GD32F303開發(fā)板上,使用示波器測量PA8口,就能測量到外部高速晶振的頻率啦。
這里需要說一下,外部高速晶振起振后,是一個正弦波

而通過PA8輸出的波形,是一個方波:

以上就是今天的內(nèi)容,小伙伴們還想要了解什么,歡迎評論區(qū)留言哦。