问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

STM32F103定时器配置:使用STM32CubeMX产生定时中断

创作时间:
作者:
@小白创作中心

STM32F103定时器配置:使用STM32CubeMX产生定时中断

引用
CSDN
1.
https://blog.csdn.net/DongJayYet/article/details/138698280

本文主要介绍了如何使用STM32CubeMX工具配置STM32F103定时器产生定时中断。通过详细讲解定时器的配置步骤和代码实现,帮助读者快速掌握定时器的使用方法。

一:前言

基于STM32的开发,使用STM32CubeMX可以提升开发效率,也大大降低了新手对STM32单片机的开发门槛。本文以基于项目实际应用,主要讲述了STM32芯片的定时器的配置及其相关知识。

二:简介

STM32定时器是微控制器内部的一种计时工具,用于精确控制时间和执行特定的时间相关任务。在STM32中,定时器分为基础定时器、通用定时器、高级定时器和低功耗定时器。本文介绍基础定时器的配置与使用。

三:配置

先查看时钟:

选择定时器,并选择时钟,然后选择PSC,ARR。计算公式:

Tout = (ARR+1)×Tcnt = (ARR+1)×(PSC+1)×(1/Fclk)

以下图为例: PSC = 3600-1, ARR=10-1; Fclk从上可以看到是36M.

T = 3600*10/36M = 1/1000 s =1ms. 将产生1ms中断。

使能中断:

参考:https://www.st.com/resource/en/application_note/an4013-introduction-to-timers-for-stm32-mcus-stmicroelectronics.pdf

四:代码

利用cubeMX产生代码后,需要自己使能定时器并开启中断。

if(HAL_TIM_Base_Start_IT(&htim2) != HAL_OK)
{
   Error_Handler();
}

并添加中断处理函数:

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
    if (htim->Instance == TIM2) {
    /* 中断处理*/
    }
}

五:总结

本文主要讲述了利用STM32CubeMX快速配置使用定时器产生定时中断的方法,通过此方法可以很方便地应用定时器。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号