天天看點

STM32定時器程式(一個LED閃爍)

以下程式使用的開發闆為"普中PZ6806L"不同闆子所對應的GPIO口功能會有些許不同。

下面是實戰内容主要内容為如何配置以及關鍵函數的使用(以下為小白提供學習)。

1.老規矩先選擇好自己使用的smt32的型号。

STM32定時器程式(一個LED閃爍)

2.我這裡就用一個GPIO口做示範了(這樣子比較友善)我這裡用PC0是因為我PC0是一個LED,你們用的時候要找好對應LED的端口。

STM32定時器程式(一個LED閃爍)

3.把這個GPIO口PC0調至High(因為我的闆子是低電平點亮)。

STM32定時器程式(一個LED閃爍)

4…将RCC裡的高速時鐘調至Crystal模式‘’

STM32定時器程式(一個LED閃爍)

5.将SYS裡的Debug調至Serial Wire模式。

STM32定時器程式(一個LED閃爍)

6.把TIM3裡的Clock Source調至lnternal Clock,再把下面的定時器打開(就是下面打勾的地方)就ok了。

STM32定時器程式(一個LED閃爍)

7.時鐘樹調到如下圖就行了。(以上順序不分前後)

STM32定時器程式(一個LED閃爍)

8.将存儲路徑和代碼生成器設定好就可以點選GENERATE CODE生成代碼了。

STM32定時器程式(一個LED閃爍)

9.

HAL_TIM_Base_Start_IT(&htim1);//開啟定時器1中斷函數

HAL_TIM_Base_Stop_IT(&htim1);//關閉定時器1中斷函數

STM32定時器程式(一個LED閃爍)

10.

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)//定時器回調函數
{

  UNUSED(htim);
  HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_0);翻轉PA0的電平狀态
}
           
STM32定時器程式(一個LED閃爍)

這樣子你就得到了一個一閃一閃的LED。