基于STM32CubeMX的定时器开发基础【Hal库】

本文介绍了基于STM32CubeMX的定时器开发基础,重点讲解了通用定时器的工作原理和配置方法,通过实例演示如何设置TIM2和TIM3实现不同周期的LED闪烁,以及如何动态调整定时器参数改变闪烁频率。
摘要由CSDN通过智能技术生成

本节主要讲解的是stm32的定时器,阅读本文前最好 看一下我之前的文章,对于stm32的定时器可以分为一下几种:

系统滴答定时器Sys Tick

对于这个系统滴答定时器是M3内核的定时器,主要是给RTOS操作系统提供时钟节拍的,例如我们之前做延迟所用到的HAL库里的HAL_Delay()的延迟函数就是基于系统滴答定时器

看门狗Watchdog

看门狗是在很多单片机都有的时钟,可以防止程序跑飞

实时时钟RTC

实时时钟是用来做日历时钟的,在51单片机中也有存在

基本定时器(TIM6、TIM7)、通用定时器(TIM2、TIM3、TIM4、TIM5)、高级定时器(TIM1、TIM8)

这些stm32中比较常用的定时器,基本定时器也就是实现最为基本的功能,通用定时器可以实现更高级的功能,比如PWM波的生成等等,后面有机会的话会出相关的博客接下来是高级定时器,这些一般用在比较特殊的领域,本文不做涉及

具体可以看下官方的中文手册

 

 

在学习stm32时呢,通用定时器是最具代表性的,本文以通用定时器来做一个闪烁小灯的实例来描述定时器

通用定时器是通过预分频器(Prescaler)驱动主计数器(Counter Period)对内部时钟或者触发外部时钟来计数,由于预分频器(Prescaler)是16位,所以我们要向该预分频器系数输入0~65535之间任意的数值,定时器发生中断的时间的计算方法:定时器发生中断的时间=(Prescaler+1)×(Counter Period+1)×1/定时器时钟频率,在之前章节的学习我们一般都是将我们的定时器频率配置成32MHz,所以呢我们一般都是将Prescaler设置为31999,将Counter Period设置为自己想要发生中断的时间,比如想要设置500ms后发生中断,那就把Counter Period设置为499,以此类推。

那么我们下面在stm32cubemx中将其配置一下,首先还是和刚开始的一样,对芯片进行选型,(此处不再放图),配置好时钟,将调试模式转换为SW模式,在创建文件处将,c和.h文件勾选上

 

 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值