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输入信号的频率和占空比。

五、输出比较

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

相关推荐
USER_A00117 分钟前
【STM32】综合练习——智能风扇系统
stm32·单片机·嵌入式硬件·智能风扇
狄加山67523 分钟前
STM32 基础2
stm32·单片机·嵌入式硬件
爱喝西北风的东北风2 小时前
状态机思想编程
单片机·嵌入式硬件·fpga开发
PegasusYu3 小时前
Electron使用WebAssembly实现CRC-32 STM32校验
stm32·electron·nodejs·wasm·webassembly·crc32·crc-32
柒月玖.3 小时前
基于AT89C51单片机的加减乘除液晶计算机设计
单片机·嵌入式硬件
剑鞘的流苏3 小时前
DC-DC电路和LDO电路
单片机·嵌入式硬件
CDialog6 小时前
qemu仿真调试esp32,以及安装版和vscode版配置区别
单片机·嵌入式硬件
南梦也要学习6 小时前
STM32江科大----IIC
stm32·单片机·嵌入式硬件
狄加山6757 小时前
STM32 基础1
stm32·单片机·嵌入式硬件
华清远见IT开放实验室8 小时前
【通知】STM32MP157驱动开发课程全新升级!零基础入门嵌入式Linux驱动,掌握底层开发核心技能!
linux·驱动开发·stm32·开发板·课程升级