1.1通用定时器简介
F1系列通用定时器为TIM2/3/4/5,相比于基本定时器,除了拥有其全部功能外,另外增加了极性选择,触发输出ADC,并且会产生触发事件、输入捕获、输出比较,拥有四个独立通道。
通用定时器共有6个部分其中45,56是分别搭配分时复用的,既使能45,6关闭,使能56,4关闭。在时钟源,共有四种方式进行触发,控制器的TRGO多出了ADC触发。
1.2通用定时器的4种时钟源
1.2.1内部时钟:与基本定时器的时钟一致。来自APB总线。
1.2.2外部1模式:外部模式1来自与IO的复用功能,将IO口复用为一个定时器通道进行输入捕获的时钟源,经过滤波器后进行极性选择,随后进入触发选择,进入从模式选择随后进入时基单元。
上图为TRGO输入的两种时钟模式,分别为内部时钟与外部时钟模式1,通过配置TIMX-SMCR寄存器的SMS3位。 而TIMX-SMCR的TS位可以配置输入的极性选择,有上边沿计数,下边沿计数,双边沿计数,其中上边沿信号来自通道1下边沿信号来自通道2,双边沿信号来自通道1.由于TRGI是上边沿,所以只会检测到上边沿,使用下边沿计数要进行反向。ETRF同理。
1.2.3外部模式2:
直接将一个IO口配置成ETR引脚,检测输入的电平作为时钟,进入ETRF
以上为寄存器配置
外部模式1+TRGI触发输入改成ETRF=外部模式2,区别在于TRGI能产生触发事件(更新)
外部模式2 的时钟源来自io口的复用,外部引脚的电平经过极性选择后进行分频,滤波后由ETRF进入从模式并进如时基单元。
总结:
2.1.4级联模式
一个定时器作为另一个定时器的“分频器”。设置两个定时器为一主一从,主模式MMS赋值010,将溢出更新事件延续给TRGO,当定时器1发生一个更新事件后,定时器2配置成外部定时1模式,每有一个更新事件,定时器二接收到一个脉冲。
定时器的主从根据ITR0 1 2 3(TS位)配置
2.1定时器硬件
2.1.1滤波器
选定滤波器与采样次数后,会进行如上操作,当一个时序跳变后,如果在一个周期内,跳变时序不满足8次采样,记为无跳变,维持原信号,反之8次为跳变,极大的减少了毛刺干扰。
无滤波器时,Fdts=定时器的时钟
2.1.3输出比较
配置成输出比较通道后,输入捕获功能会自动关闭,开启输出比较后,CNT计数器寄存器会与CCR比较寄存器进行比较,大于与小于会输出不同结果。
oc1m选择定时器输出模式
定时器输出比较分为两种比较模式,第一种携带影子寄存器,携带影子寄存器后,会把新写入的CCR赋给预装载寄存器,移除后赋给影子寄存器与技术及比较,第二种不携带影子寄存器,会在写完ccr后立马赋值给比较寄存器。进行比较。
中断代码
通用中断代码没有HAL库的公共处理函数,通过判断定时器的挂起标志位来进行操作,并手动清除标志位。