STM32F030 定时器

一般定时器(TIM3)(参考文献:STM32F030x4/6/8/C参考手册)

TIM3介绍

TIM3主功能

功能介绍

定时器基本单元(功能图)

这里写图片描述

计数器模式

向上计数模式

计数器从0递增到auto-reload value,然后复位到0重新递增,
同时产生一个overflow event

向下计数模式

计数器从auto-reload value递减到0,然后复位到auto-reload value重新递减,
同时产生一个underflow event

中心对齐模式

计数器从0递增到auto-reload value-1,此时产生一个overflow event
然后从auto-reload value递减到1,此时产生一个underflow event
然后复位到0重新递增。

时钟源

定时器时钟源可以是以下几种之一:

  • Internal clock (CK_INT)
  • External clock mode1: external input pin (TIx)
  • External clock mode2: external trigger input (ETR)
  • Internal trigger inputs (ITRx): using one timer as prescaler for another timer

捕获/比较通道

输入捕获模式

PWM输入模式

强制输出模式

输出比较模式

PWM模式

单脉冲模式

在一个外部事件时清除OCxREF信号

编码器接口模式

定时器输入XOR功能

定时器和外部触发器同步

定时器同步

调试模式

TIM3寄存器

定时器初始化示例:

    TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
    /* Time base configuration */
    TIM_TimeBaseStructure.TIM_Period = 65535;
    TIM_TimeBaseStructure.TIM_Prescaler = 0;
  /*CK_CNT = f(CK_PSC)/(TIM_Prescaler+1)*/
    TIM_TimeBaseStructure.TIM_ClockDivision = 0;
  /*tDTS = TIM_ClockDivision*tCK_INT (dead-time and sampling clock)*/
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
    TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);

定时器结构体解释:

typedef struct
{
  uint16_t TIM_Prescaler;         /*定时器时钟分频器:0x0000~0xFFFF*/

  uint16_t TIM_CounterMode;       /*计数模式*/

  uint32_t TIM_Period;            /*定时周期,取值范围:0x0000~0xFFFF*/ 

  uint16_t TIM_ClockDivision;     /*!使用数字滤波器时设定定时器时钟和采样时钟间的分频比*/

  uint8_t TIM_RepetitionCounter;  /*!This parameter is valid only for TIM1. */
} TIM_TimeBaseInitTypeDef;  

定时器工作模式

输入捕获模式

输入捕获模式可以用来测量脉冲宽度或者测量频率。 STM32的定时器,除了TIM6和 TIM7,其他定时器都有输入捕获功能。 STM32的输入捕获,简单的说就是通过检测 TIMx_CHx 上的边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候,将当前定时器的值(TIMx_CNT)存放到对应的通道的捕获/比较寄存器(TIMx_CCRx)里面,完成一次捕获。同时还可以配置捕获时是否触发中断/DMA 等。
比如使用TIM2_CH1来捕获高电平脉宽,也就是要先设置输入捕获为上升沿检测,记录发生上升沿的时候 TIM2_CNT的值。然后配置捕获信号为下降沿捕获,当下降沿到来时,发生捕获,并记录此时的TIM2_CNT值。这样,前后两次TIM2_CNT之差,就是高电平的脉宽,同时 TIM2的计数频率我们是知道的,从而可以计算出高电平脉宽的准确时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值