時鐘操作LED

2021-10-01 20:26:34 字數 1368 閱讀 3488

上一次已經知道韌體庫中是如何配置系統時鐘的了,那麼,如果想要按照自己的想法來配置乙個超頻或者低頻的時鐘,應該怎麼辦呢?

同樣的,我們將模板複製乙份,然後在user目錄中建立倆個目錄,乙個rcc目錄下建立rcc.c和rcc.h,乙個led目錄下建立led.c和led.h,然後匯入工程當中,在魔棒中指定他們的路徑。led目錄下建立led.c和led.h可以參考以前寫的。

在這裡我們使用hse來設定系統時鐘,當然,也可以使用hsi或者pll來設定系統時鐘。

我們發現,在韌體庫的系統時鐘配置的檔案system_stm32f10x.c中,對系統時鐘的初始化是通過暫存器來實現的,如果我們自己寫,使用暫存器的話就過於麻煩了,當使用韌體庫函式寫的話,我們一般會使用stm32f10x_rcc.c當中已經封裝好的函式,按照setsysclockto72(void)中的步驟來寫。

我個人猜測,rbt6的板子應該是沒有復用osc32_in和 osc32_out這倆個功能的,只是告訴pc14和pc15可以被用來作為復用引腳,但應該需要把跳線帽拿掉然後接外設使用的,而mco也沒有復用,pa8在板子上是接了乙個按鍵,應該也是需要拿掉跳線帽,然後自己加外設。。。。。pc14和pc15對led和lcd的復用應該是通過那個鎖存器來實現的。預設應該是led

rcc.h

#ifndef _rcc_h

#define _rcc_h

#include

"stm32f10x.h"

void

hse_setsysclk

(uint32_t rcc_pllmul_x)

;#endif

rcc.c

#include

"rcc.h"

void

hse_setsysclk

(uint32_t rcc_pllmul_x)

errorstatus;

errorstatus hsestatus;

rcc_hseconfig

(rcc_hse_on)

;//使能hse,

//等待hse啟動就緒,並做超時處理

hsestatus=

rcc_waitforhsestartup()

;//返回值是errorstatus,因此需要定義乙個這個型別的資料來接返回值

if(hsestatus==success)

//hse啟動成功

rcc_sysclkconfig

(rcc_sysclksource_pllclk)

;//選擇pll作為系統時鐘

while

(rcc_getsysclksource()

!=0x08)}

else

}

使用C 編寫LED樣式時鐘控制項

使用c 編寫led樣式時鐘控制項 執行效果 http blog.csdn.net images blog csdn net johnsuna clockcontrol.jpg 未經書面許可,請勿用於商業用途 using system namespace brawdraw.com.photoframe...

作業系統 時鐘

軟定時器 時鐘又稱為定時器,負責維護時間,防止程序壟斷cpu。時鐘由三個部件構成 晶體振盪器 計數器和儲存暫存器。晶體振盪器產生精確地週期性訊號,該訊號通過電路被傳送給計數器,當計數器變為0時就產生乙個cpu中斷。可程式設計時鐘的優勢在於中斷頻率可以由軟體控制,它有不同的操作模式 完成模式 在一次完...

按鍵控制LED流水燈模式 定時器時鐘

include void timer0 init void main unsigned int t0count void timer0 routinr interrupt 1 鬧鐘響之後跳轉到該子函式,執行中斷任務段 中斷子程式 中斷服務程式 中斷初始化之後進入主函式,之後先執行最下邊子函式,然後再...