基本定时器
基本定时器
整个产生的中断时间是=CPU时钟/(分频系数+1)*(重装载值+1)
Prtscaler (定时器预分频系数) : 31999
Counter Mode(计数模式) : Up(向上计数模式)
Counter Period(自动重装载值) : 499
CKD(时钟分频因子) : No Division 不分频 (可以选择二分频和四分频 )
auto-reload-preload(自动重装载) : Enable 使能
自动重装载
举个例子来说,如果我们想改变ARR寄存器中的值,但是当前的定时还没有结束,在这时如果未设置影子寄存器,那么设定的值会立即生效。而如果设置了影子寄存器,那么新的值会在当前计数周期结束之后生效。
在STM32基本定时器的PSC预分频寄存器和ARR自动装载寄存器都有影子寄存器。
htim7.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
是下个周期立即生效
htim7.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
是下下个周期生效
通用定时器
通用定时器和高级定时器其实也就是在基本定时器的基础上,添加了一些其他功能,如:
输入捕获、
输出比较、
输出 PWM
单脉冲模式等
时钟源
通用定时器时钟可以选择下面四类时钟源之一:
1)内部时钟(CK_INT) -->(APB1 总线或者APB2 总线 上的时钟频率)
2)外部时钟模式 1:外部输入引脚(TIx), x=1, 2(即只能来自于通道 1 或者通道 2)--> 通过引脚实现定时(外部时钟源信号→IO→TIMx_CH1(或者 TIMx_CH2)
3)外部时钟模式 2:外部触发输入(ETR)--->外部
时钟源信号→IO→TIMx_ETR。
4)内部触发输入(ITRx):使用一个定时器作为另一定时器的预分频器(即一个定时器的输出是另一个定时器的输入)
从模式
参考
https://blog.csdn.net/shileiwu0505/article/details/124070312
输入捕获
输入捕获部分可以对输入的信号的上升沿,下降沿或者双边沿进行捕获
输出比较
参考
https://blog.csdn.net/weixin_47042449/article/details/122619370
1.输出比较模式和PWM模式都可以用来输出PWM波,在功能上两者有相同之处2.输出比较模式可以方便的调节每一路PWM波的频率,可以输出四路频率不同,占空比不同的PWM
强制输出
强制输出模式用于立即改变输出电平,
输出比较模式用于根据定时器计数值和比较值来改变输出状态,
而PWM模式则用于产生可调节占空比的脉冲信号用于控制输出
参考
高级定时器
重复计数器
定时器发生上溢或者下溢时,会直接生成更新事件
有重复计数器的定时器并不完全是这样的,定时器每次发生上溢或下溢时,重复计数器的值会减一,当重复计数器的值为 0 时,再发生一次上溢或者下溢才会生成定时器更新事件
互补输出
TIM1_CH2N通道就是TIM1_CH2的互补通道,它们的波形完全反向(波形相反)
死区控制
死区控制会在一个功率开关器件导通后,延迟一段时间后再使另一个功率开关器件导通,以确保它们之间不存在重叠的导通时间。
这段延迟时间称为死区时间,通常以微秒(μs)为单位。
参考
https://blog.csdn.net/weixin_65470396/article/details/137787655
断路功能