STM32之定时器

一、简介

STM32F4xx系列共有14个定时器,其中2个高级定时器、10个通用定时器、2个基本定时器。下图

为各定时器及其功能。

图1.各定时器及其功能 

二、定时器的计数模式

向上计数模式:计数器从0计数到自动加载值(TIMx_ARR),然后重新从0开始计数并且产生一个计数器溢出事件。

向下计数模式:计数器从自动装入的值(TIMx_ARR)开始向下计数到0,然后从自动装入的值重新开始,并产生一个计数器向下溢出事件。

三、时基单元

图2.各个定时器所挂载在总线上的情况

定时器的时钟源:定时器TIM2~TIM5和TIM12~14挂接在APB1上,定时器TIM1和TIM8~TIM11挂接在APB2上,若外部晶振的频率为8MHz,则系统默认的时钟频率为72MHz(即AHB=72MHz)。若将APB1预分频器的分频系数设置为2,则PCLK1=36MHz。由图2可以看出,若APB1预分频系数不等于1,则定时器TIM2~TIM7的时钟频率是APB1频率的2倍,即TIM2~TIM7的时钟频率 TIMxCLK=(AHB/2)x2=72MHz;若APB2预分频系数设置为1,则PCLK2=72MHz,TIM1和TIM8 的时钟频率 TIMxCLK=72MHz。

定时器的时基单元:

图3.

预分频器(PSC):一般为16位,对时钟源CK_PSC的时钟频率进行分频,输出的脉冲供计数器计数。

自动重装寄存器(ARR):用于装载计数器的最大计数值。

计数器(CNT):当计数值达到自动重装寄存器(ARR)所设定的值时,会产生溢出事件,如果使能了中断功能,就会溢出一个中断,再由自动重装寄存器进行重新加载或更新。

定时时间的计算公式:定时时间=(ARR+1)*(PSC+1)/输入时钟频率。

四、输入捕获

输入捕获可以用于捕获外部事件(如对输入信号的上升沿、下降沿或者双边沿进行捕获),常用于测量输入信号的的脉宽和测量PWM输入信号的频率和占空比。

五、输出比较

用于控制输出信号的波形,当计数器的值与捕获/比较寄存器的值相等时,输出比较做出相应的电平变化。

相关推荐

  1. STM32—系统定时器

    2024-02-09 11:46:01       58 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-09 11:46:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-09 11:46:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-09 11:46:01       87 阅读
  4. Python语言-面向对象

    2024-02-09 11:46:01       96 阅读

热门阅读

  1. 怎么进入docker容器并执行

    2024-02-09 11:46:01       49 阅读
  2. Python笔记(九)

    2024-02-09 11:46:01       45 阅读
  3. OpenHarmony轻量级内核-LiteOS-M

    2024-02-09 11:46:01       49 阅读
  4. MongoDB聚合: $sort

    2024-02-09 11:46:01       47 阅读
  5. 编程中“游戏心切”心态的影响及其对策探讨

    2024-02-09 11:46:01       48 阅读
  6. GEE python——根据 GPS 轨迹绘制海拔高度剖面图

    2024-02-09 11:46:01       49 阅读
  7. 同步復位和異步復位二者各自的優缺點

    2024-02-09 11:46:01       49 阅读
  8. STM32DMA

    STM32DMA

    2024-02-09 11:46:01      38 阅读
  9. axios-retry 响应异常

    2024-02-09 11:46:01       48 阅读
  10. 梯度提升树系列3——利用GBDT进行回归分析

    2024-02-09 11:46:01       53 阅读
  11. office文件转pdf在线预览

    2024-02-09 11:46:01       38 阅读