STM32CubeMX学习记录——配置定时器

一、学习目的

  在STM32学习中,定时器是一个非常重要的组成部分。本文将详细记录如何通过CubeMX工具配置定时器,以实现1ms的定时功能。(附计算公式)

二、CubeMX配置

(1)首先打开CubeMX软件,新建工程。有关软件使用以及新建工程的相关操作在之前的文章中已经有过记载,有需要可以查看以下文章:蓝桥杯嵌入式学习记录——点亮第一个LED(含软件的使用)_蓝桥杯嵌入式led-CSDN博客

(2)进入如下界面后,先点击System Core > RCC时钟选项,如图步骤所示打开高速时钟设置

(3)再点击SYS >Debug ,选择串口通信方式

(4)接着按照下图步骤修改时钟参数设置时钟频率为72MHz,以下提供修改后的参数图

(5)完成以上基础配置就可以开始配置定时器了,按照以下标注的操作步骤进行配置,1点击进入左侧的Timers>TIM2,2配置时钟源为内部时钟,3打开定时器中断设置

(6)配置定时器的参数,这一步用来设置定时的时长,定时时长的计算公式如下:

定时时间 = (预分频器值\times计数器重载值)/ 定时器时钟频率

脉冲频率 = 1 / 定时时间

由于我们前面设置的时钟频率为72MHz,因此,我们想要定时1ms就可以计算出:预分频器值\times计数器重载值 = 72000,即可以如下设置参数:

至此,定时器配置已经完成,接下来就可以按照如下步骤生成工程文件:

(1)给工程文件命名 > 选择编辑器

(2)选择生成文件类型 > 生成文件

三、代码编写

        CubeMX的配置完成之后,就可以打开工程文件进行代码编写了

(1)在编写代码时,首先需要使能定时器中断,可以通过以下代码进行开启和关闭

HAL_TIM_Base_Start_IT(&htim2); //使用定时器的时候调用这个函数启动
HAL_TIM_Base_Stop_IT(&htim2);  //停止定时器的时候调用这个函数关闭

        这里需要注意的是,一旦写下HAL_TIM_Base_Start_IT(&htim2); 函数,程序就会开启中断,所以一般写在主函数while循环前面,也可以根据需要写在对应操作后面

(2)以下是定时器中断服务函数,也叫回调函数:

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
  if(htim->Instance == TIM2)
  {
    //编写回调逻辑,即定时器2定时5MS后的逻辑
  }
}

        从代码中可以看出,函数会先进行判断,如果TIM2中断才会执行中断事件,也就对应了上面的“一旦写下HAL_TIM_Base_Start_IT(&htim2); 函数,程序就会开启中断”

        然后就可以编写相关的中断时间,例如希望定时1秒后点亮LED灯,可以如下编写代码:

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
    static int i;
  if(htim->Instance == TIM2)
  {
    if(i == 1000) // 执行1000次1ms定时,即1秒后
        {
            i = 0;   //让i = 0,重新计时
            LED = 0; // 点亮LED(需要另外配置和编写函数)
        }
  }
}

至此,定时器的配置就记录完成了

引用

感谢以下文章博主

STM32CubeMX——定时器配置_cubemx配置定时器-CSDN博客

蓝桥杯嵌入式学习记录——PWM输出_蓝桥杯pwm-CSDN博客

STM32CubeMX——定时器之定时功能_stm32cubemx 定时器-CSDN博客

### 回答1: STM32CubeMX是一款用于STM32微控制器的图形化配置工具,可以帮助开发人员快速配置和生成代码。在STM32CubeMX配置定时器需要以下步骤: 1. 打开STM32CubeMX软件,选择对应的芯片型号。 2. 在左侧的“Pinout & Configuration”选项卡中选择“Timers”。 3. 选择需要配置定时器,例如TIM2。 4. 在右侧的“Configuration”选项卡中配置定时器的各项参数,例如时钟源、预分频系数、计数模式等。 5. 点击“Generate Code”按钮生成代码,并将代码复制到工程中。 通过以上步骤,就可以在STM32CubeMX配置定时器,并生成相应的代码。 ### 回答2: STM32CubeMX是ST公司针对STM32系列微控制器提供的一款通用的图形化软件工具,它可以帮助开发者快速地配置代码和初始化时钟、外设和引脚等设置,从而加快嵌入式系统的开发进度。 在STM32CubeMX配置定时器可以简化代码编写,并减少错误的发生。下面简单介绍STM32CubeMX定时器配置的步骤: 1. 启动STM32CubeMX软件,在工具栏中选择“新建项目”,并选择要使用的STM32型号。 2. 在左侧的菜单中选择“Timers”,并点击“+”号添加一个定时器。 3. 在右侧的“General Parameters”中配置定时器的基本参数,包括定时器的时钟源,计数模式,频率等。 4. 在“Configuration”选项卡下配置定时器的具体工作模式和周期。例如,选择“Output Compare PWM Mode”时,需要设置定时器的周期、比较值和输出比较模式等参数。 5. 在“NVIC Settings”选项卡下配置定时器中断,包括开启中断、中断优先级等参数。 6. 在“Code Generation”选项卡中选择相应的编程语言和IDE,并生成代码。 以上就是STM32CubeMX定时器配置的基本步骤,如有需要,还可以进一步配置其他高级功能,例如输入捕获、编码器接口等。 需要注意的是,不同型号的STM32微控制器的定时器功能可能有所不同,因此在配置定时器时需要参考具体的芯片手册。另外,定时器配置还需要视具体应用场景而定,需要考虑到定时器的稳定性、精度、功耗等因素。 ### 回答3: STM32Cubemax是针对STM32系列微控制器的一种MCU代码生成工具。在STM32Cubemax中,我们可以轻松地配置微控制器中的各种模块,例如定时器模块。定时器模块在许多项目中都是必需的,因此在使用STM32Cubemax时学会定时器如何配置是非常重要的。下面将介绍如何使用STM32Cubemax配置STM32微控制器的定时器。 1. 打开STM32Cubemax,并创建一个新的项目。 2. 选择你的目标MCU型号。 3. 配置系统时钟。在STM32Cubemax中,菜单栏中有一个“Clock_config”按钮。在这里,你可以配置系统时钟,包括PLL选项、外部晶振、系统时钟等等。 4. 配置定时器。在STM32Cubemax中,选择“Timers”选项卡,然后单击“Add”按钮创建一个新计时器。在这里你可以为定时器指定一个名称,并选择要启用的计时器类型(基本计时器、通用计时器等)。 5. 配置定时器时钟。在“Clock_source”下拉菜单中选择适当的时钟源选项。 6. 配置定时器计时频率。在“Prescaler”字段中指定预分频器值。 7. 配置定时器计数。指定定时器计数器的初值和重载值。 8. 配置中断服务例程。在“Intterupts”选项卡中,你可以配置定时器的中断服务例程。 9. 生成代码。在配置完所有定时器选项后,可以使用STM32Cubemax自动生成相应的代码。 总之,使用STM32Cubemax配置定时器是十分容易的。只需按照上述步骤进行配置STM32Cubemax就能够自动生成完整的代码来实现你的要求。这大大简化了平台的开发过程,让你能够更快速、更准确地完成项目。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KAIs32

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值