【STM32CubeMx你不知道的那些事】第五章:STM32CubeMx定時器中斷配置

這一章講的是STM32F103C8T6定時器配置,定時器配置主要要弄懂的是系統主頻多少、你分頻多少、你需要定時多長時間。

我們來做一個簡單的計算。比如說系統的主頻是72M,我們要想得到一個定時時間1S鐘的定時器,我們可以通過修改分頻係數和計數值來確定。這裏我們分頻係數設置爲(7200-1)這裏減1是必須加上的確保計數精確,這樣得到分頻時鐘是10K。我們將計數值設置爲10000(10k)這樣就能配置成功一個1S鐘的定時器。

一、準備工作

1、使用第一章配置好的文件,這裏不多說了。大家也可以用自己配置好的工程文件。

2、準備一塊stm32f103c8t6最小系統核心板。(杜邦線若干)

二、具體操作

1、在Pinout菜單欄下,定時器的選擇與配置。配置如圖

這裏選擇的是TIM1定時器,時鐘源選擇的是內部時鐘。

2、在Clock Configuration菜單欄下,我們要設定外部主時鐘,這裏第一章說過了我們設定時鐘爲72M,根據不同芯片可設置不同主頻。配置如圖

3、在Configuration菜單欄下,點擊Control下的TIM1彈出配置界面,配置如圖

①點擊Parameter Setting菜單欄

②設置分頻係數

③設置計數方式爲增加計數

④設置計數值爲10000

⑤打開自動重載計數值

⑥點擊OK

這裏注意的是要打開NVIC Setting下的 TIM1的更新中斷!

3、生成工程

點擊Project菜單欄選擇Generate code,工程生成完畢。

4、打開MDK工程,工程裏面配置

1)while之前添加定時器中斷打開函數

  HAL_TIM_Base_Start_IT(&htim1);

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {

  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */

  }

HAL_TIM_Base_Start_IT(&htim1);

2)在Tim.c添加定時器中斷回調函數

unsigned int LED = 0;
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{

	if (htim->Instance == htim1.Instance)
	{
		LED ^= 1;
	}

}

編譯下載即可!

5、調試測試

仿真添加監控變量即可看到變量每隔一秒跳轉一次。

這樣定時器中斷配置就完成了!~~~

 

如有什麼不懂聯繫加QQ羣:1063618791歡迎大家學習交流!

QQ:1320300083

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章