STM32 入门篇之通用定时器彻底研究
STM32 的定时器功能很强大,学习起来也很费劲儿,本人在这卡了 5 天才
算看明白。写下下面的文字送给后来者,希望能带给你点启发。在此声明,本
人也是刚入门,接触 STM32 不足 10 天,所以有失误的地方请以手册为准,
欢迎大家拍砖。
其实手册讲的还是挺全面的,只是无奈 TIMER 的功能太复杂,所以显得手
册很难懂,我就是通过这样看手册:while(!SUCCESS){看手册…}才搞明
白的!所以接下来我以手册的顺序为主线,增加一些自己的理解,并通过 11 个
例程对 TIMER 做个剖析。实验环境是 STM103V100 的实验板,MDK3.2
+Library2.东西都不怎么新,凑合用……
TIMER 主要是由三部分组成:
1、 时基单元。
2、 输入捕获。
3、 输出比较。
还有两种模式控制功能:从模式控制和主模式控制。
一、 框图
让我们看下手册,一开始是定时器的框图,这里面几乎包含了所有定时
器的信息,您要是能看明白,那么接下来就不用再看别的了…
为了方便的看图,我对里面出现的名词和符号做个注解:
TIMx_ETR:TIMER 外部触发引脚 ETR:外部触发输入
ETRP:分频后的外部触发输入 ETRF:滤波后的外部触发输入
ITRx:内部触发 x(由另外的定时器触发)
TI1F_ED:TI1 的边沿检测器。
TI1FP1/2:滤波后定时器 1/2 的输入
TRGI:触发输入 TRGO:触发输出
CK_PSC:应该叫分频器时钟输入
CK_CNT:定时器时钟。(定时周期的计算就靠它)
TIMx_CHx:TIMER 的输入脚 TIx:应该叫做定时器输入信号 x
ICx:输入比较 x ICxPS:分频后的 ICx
OCx:输出捕获 x OCxREF:输出参考信号
关于框图还有以下几点要注意:
1、 影子寄存器。
有阴影的寄存器,表示在物理上这个寄存器对应 2 个寄存器,
一 个 是 程 序 员 可 以 写 入 或 读 出 的 寄 存 器 , 称 为 preload
register(预装载寄存器),另一个是程序员看不见的、但在操作中
真正起作用的寄存器,称为 shadow register(影子寄存器);(详
细请参考版主博客 http://blog.ednchina.com/STM32/4014
61/message.aspx)
2、 输入滤波机制
在 ETR 何 TIx 输入端有个输入滤波器,它的作用是以采样频
率 Fdts 来采样 N 次进行滤波的。(具体也请参考版主博客
http://blog.ednchina.com/STM32/263170/
message.aspx)