stm32定时器学习总结 (主要是对几个寄存器进行说明)
1. 时基结构体两个成员的配置
分频因子(PSC)和自动重装载寄存器(ARR)
计数 1s 可以自己配置的
先计算计数器计一次的时间
(系统时钟为72MHZ,)
CK_CNT = CK_PSC(系统时钟) / (PSC+1) (PSC为分频因子 结构体配置成员)
如配置PSC为72(由于自动加一所以配置时要减一)
72MHZ/72 = 1MHZ
T = 1/ f = 1/1*10^6 s
T = 1us
输出速度
配置分频因子和自动重装载寄存器ARR
PWM信号频率F = 定时器时钟(72MHZ)/ (ARR+1)*(PSC+1)
例 : 输出一个13Khz的信号 设定ARR的值为900
13khz = 72M/(899+1)*(PSC+1)
= 72000000 / 900PSC
= 80000/PSC
PSC=80000/13000
PSC = 6.153
两种PWM输出模式
PWM1 配置ARR寄存器 再配置CCR寄存器 进行比较 如果计数次数 CNT<CCR 为有效 (一般设置为高电平) (CNT从0计数到ARR溢出值) (CCR为我自己配置的值) 当ARR>CNT>CCR的时候 CH电平为无效(为低电平)
例1: 如ARR为500 CCR配置为250时
在0到250为高电平 251到500为低电平 一半一半
PWM2 配置ARR寄存器 再配置CCR寄存器 进行比较 如果计数次数 CNT<CCR 为无效 (一般设置为低电平) (CNT从0计数到ARR溢出值) (CCR为我自己配置的值) 当ARR>CNT>CCR的时候 CH电平为有效(为高电平)
例2: 如ARR为900 CCR配置为400时
当我CCR配置为900时 CNT永远不会高于CCR 永远为低电平