STMCU小助手
发布时间:2022-12-26 13:00
|
定时器的分类 16 bit General Purpose Timer* H W- r1 c L1 s% g 16 bit Advanced Control Timer, A7 C5 r9 Q5 R 16 bit Basic% E! p, }$ `* G+ }% H' M! c 定时器的区别 0 n4 C; a7 T6 a% w
通用定时器TIM2~TIM5的特点6 F6 t8 a0 p' T$ C$ s& V! R% ^ 位于低速的APB1总线 16位向上,向下,中心对齐计数模式,自动装载计数器TIMx_CNT 16位可编程预分频器TIMx_PSC,计数器时钟频率的分频系数为1~65535之间的任何数值9 a/ j5 z. D" E! e* ~& | 4个独立通道TIMx_CH1~4,这些通道可以用作:输入捕获,输出比较,PWM生成,单脉冲输出 可使用外部信号TIMx_ETR控制定时器和定时器互联的同步电路 可以产生中断或DMA请求(6个独立的IRQ或DMA请求生成器):更新,触发事件,输入捕获,输出比较,支持针对定位的增量编码器和霍尔传感器电路,触发输入作为外部时钟或者按周期的电流管理7 r2 m$ M0 u. E; E$ E' z 可用于测量输入信号的脉冲长度或产生输出波形PWM2 Z* }4 ~) M e5 G! p* v( z 计数器模式/ E0 `0 W" A; ~* j 向上计数 从0计数到加载值,循环往复2 U+ @ b) o' m) e$ i0 F4 K 向下计数- q* X2 l- p& K 从加载值减到0,循环往复 - ~3 i V+ c) p! n4 `2 D! \ 中央对齐模式% G6 P4 w- A& W) n: Q5 p' j 从0计数到加载值再回到0,循环往复 " `- ~, C' U2 s. L 定时器的框图
定时器的时钟来源& W: r' [2 x+ y C2 z( x* L/ |7 T " J; k4 A3 O( U" c: F- B
?2 m, k, f6 X9 g) F/ b+ |- C
时基单元6 n+ q. K0 E8 [- T" y 首先将CK_PSC进行预分频,得到CK_CNT时钟,这就是给CNT计数器的最终时钟0 X) Q( |8 `5 l/ K! ~$ T7 H 3 h% c% T' U0 B- t 在这个时钟下,CNT计数器+/-地进行计数这里的+/-可以在触发控制器中进行配置 输入捕获0 m+ N3 [, r. p' C5 j* _+ S3 L: { 对引脚的电平进行捕获,例如上升沿和下降沿我都去捕获,上升沿来临时,我在捕获/比较1寄存器中记录下当前计数值,在下降沿来临时,我再次在捕获/比较1寄存器中记录下当前计数值,这样,两个数值相减,我就能知道脉冲宽度了 9 y( ]* u! A) l; ~ 同一个通道,只能作为输入捕获或输出比较2 I, z# z2 G, u7 `; N5 |! p" t 输出比较) i6 \6 \, e$ m, n! N 比如我们在捕获/比较1寄存器中设置一个值50,计数器从上100往下到0计数,到大于50时输出高电平,小于50时输出低电平,这样就可以产生PWM波% m+ F9 r. N/ ?% E- \1 n- I 5 h0 e6 [5 Q* P8 E/ [. K g( | 这样可以很方便地修改占空比(就是这里的50)和周期(就是这里的100) ————————————————, K" u$ M1 i- v# F7 k9 v- G 版权声明:CodeForCoffee . V6 |2 A( m* L, `8 O" o |
经验分享 | 利用TIMER定时和捕获功能实现编解码演示
STM32 LSE 不起振排查指南:五大核心原因与快速解决方案
我心中的ST中文论坛
经验分享 | 利用STM32 TIMER实现同频跟随输出示例
2025软件工具兔哥知道
经验分享 | 利用STM32 TIMER实现同频跟随输出示例
经验分享 | 一个基于TIMER事件的中断响应话题_续
经验分享 | 一个基于TIMER事件的中断响应话题
11张图学会STM32定时器!
经验分享 | STM32U5系列TIMER+DMA+DAC应用演示
微信公众号
手机版