備戰藍橋杯之嵌入式 TIM

2021-07-10 02:12:11 字數 624 閱讀 6421

這次是定時器實驗,實驗功能是利用定時器中斷使led每隔500ms進行閃爍。

首先要理解這條公式:

tout(溢位時間)=(arr+1)(psc+1)/tclk

然後還要理解定時器的時鐘:

除非apb1的分頻係數是1,否則通用定時器的時鐘等於apb1時鐘的2倍。

預設呼叫systeminit函式情況下:

sysclk=72m

ahb時鐘=72m

apb1時鐘=36m

所以apb1的分頻係數=ahb/apb1時鐘=2

所以,通用定時器時鐘ck_int=2*36m=72m

最後給出配置定時器的步驟:

1:使能定時器時鐘;

2:配置定時器初始化;

3:使能定時器中斷;

4:配置中斷;

5:使能定時器;

貼出timer.c中的程式:

#include "timer.h"

void timer_init(u16 arr,u16 psc)

void tim2_irqhandler(void)

備戰藍橋杯之嵌入式 SYSTICK

之前一直用正點原子的sys.h裡的延時函式封裝庫,所以當自己弄乙個systick的延時函式時,卻被它給難住了,實在是笑話了。我之前是參照正點原子ppt裡給的函式寫的 static io uint32 t timingdelay void delay io uint32 t ntime void sy...

備戰藍橋杯之嵌入式 按鍵實驗

這次要實現的功能是lcd顯示我按下的是哪乙個鍵。需要注意一下幾個點 1 配置button的時候要注意是輸入模式,因此不需要配置頻率。2 配置成上拉輸入 ipu 還是下拉輸入 ipd 要看硬體連線,按鍵沒按下時檢測到高電平則為上拉輸入,按鍵沒按下前檢測到低電平則為下拉輸入 3 define x xx語...

藍橋杯嵌入式 USART

乙個是串列埠 1 pa9,pa10 乙個是串列埠 2 pa2,pa3 我們的藍橋杯嵌入式開發板並不能直接使用串列埠 1rxbuf 是用來儲存串列埠的接收資料的,rxover 為接收串列埠結束標誌位,rxcunt 為串列埠接收計數值 ifndef usart h define usart h incl...