STM32定时器

  1. 定时器简介

定时器,核心就是计数器。

STM32的定时器不仅具有基本定时器中断功能,还具备捕获脉冲宽度,PWM输出,互补输出以及编码器计数等功能。

F103中共有8个定时器,TIM1-TIM8,不同定时器功能不一样,可分为三类

定时器类型

主要功能

基本定时器

TIM6和TIM7,没有输入输出通道,常用作时基,即定时功能

通用定时器

TIM2-TIM5,具有多路独立通道,可用于输入捕获/输出比较,也可用作时基

高级定时器

TIM1和TIM8,除具备通用定时器所有功能外,还具备带死区控制的互补信号输出,
刹车输入等功能(可用于电机控制,数字电源设计等)

  1. 定时器定时原理

使用精准的时基,通过硬件的方式,实现定时功能

注意:PSC(预分频器)16位(0-65535)有自加一的特性;假设预分频给0,+1=1;前面给两个波,经过预分频出去还是两个波;预分频给1,+1=2,前面给两个波,经过预分频出去就是1个波;预分频给1,+1=2,前面给4个波,经过预分频出去就是2个波;

TIM CLK:计数频率

TOUT:单位s

  1. 基本定时器实战

目的:学会1基本定时器的更新中断,LED1用于指示定时器发生更新事件的频率,每500ms状态取反一次。

  1. 确定计数器工作频率Tout;
  2. 周期确定为500ms则得出,PSC=7199,ARR=4999

接下来,开始我们的实践操作

auto-reload preload自动重装载值的缓冲区:如果我们不使能,我们一改ARR的值他就立马生效,如果我们使能了,这个缓冲区必须等你这一次的更新事件发生之后他才生效;

Trigger Output(TRGO)是他的触发模式,这里我们不需要用到。

配置好定时器,然后我们去配置中断NVIC,然后勾选在TIM6 global interrupt这里有一个TIM6的全局中断,抢占优先级设置为5;

然后生成代码,跟基本定时器有关的只有一个更新中断TIM FLAG UPDATE;

首先,我们要写HAL_TIM_Base_Start_IT(&htim6);开启中断,以及使能计时器。

定时器时间一到,进入HAL_TIM_PeriodElapsedCallback()函数中。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值