跳到主要内容

时钟与定时器

补充内容,配合主课阅读。

先确认定时器真正拿到多少时钟,再填PSC和ARR。这个顺序别反过来。

从时钟树开始​

课程常用HSE 8 MHz,经PLL九倍频得到72 MHz。AHB不分频,APB1二分频,APB2不分频。

APB分频为1时,定时器时钟等于PCLK;否则是2倍PCLK。因此这里PCLK1虽然是36 MHz,TIM2/3/4仍用72 MHz。

只记三条关系​

向上计数、普通更新时:

要算什么公式
计数频率f / (PSC + 1)
更新周期(PSC + 1) × (ARR + 1) / f
高电平时间CCR / 计数频率,PWM模式1且有效高

(f为RCC给到定时器的时钟频率) 72 MHz下,PSC=71就是每微秒一个计数脉冲,ARR=999就是1 ms一整个计数周期。中心对齐和重复计数器需要另算,不能直接套这张表。

捕获值不是时间​

CCR保存边沿到来时的CNT。两次相同极性边沿测周期,不同极性边沿测脉宽。计数差乘每拍时间,才是时间差。

若ARR=999,先捕获900,后捕获100,中间只回绕一次,计数差是200。测量间隔可能超过一个完整周期时,要累计溢出;没有输入时也应设超时,别一直显示旧结果。

电机和舵机别混着看​

电机调占空比是在调平均驱动。舵机则把高电平脉宽当位置指令;50 Hz常用,但脉宽与角度对应关系要实测。

先用频率已知的PWM信号测试输入捕获,核对测量结果,再接传感器。这样可以分别检查计数程序和传感器信号。

RTC另用低速时钟或HSE分频,不是跟着APB每秒计一次。课程板没装LSE时,不要直接照搬依赖LSE的配置。