stm32通用定时器(TIMx)学习笔记
1:通用定时器包括一个由可编程的预分频器驱动的16 位自动重载计数器。通用定时器可用于多种用途,例如测量输入信号的脉冲宽度(输入捕获),生成输出波形(输出比较和PWM)。脉冲宽度和波形周期可通过定时器的预分频器及RCC 时钟控制器的预分频器在几微秒到几毫秒之间调整。这些通用定时器是完全独立的,不共享任何资源。
2:特性
- 16 位的向上,向下,向上/向下的自动重载计数器
- 16 位的可编程预分频器(也可以不工作)允许以在1 到65535 范围内的任何因子对计数器时钟进行分频
- 多达4 个独立的通道用于:
- 输入捕获
- 输出比较
- 产生PWM(边沿和中心对齐模式)
- 单脉冲输出
- 同步电路和外部信号一起控制定时器,并和多个定时器互连。
- 以下事件产生中断/DMA:
- 更新:计数器上溢/下溢,计数器初始化(由软件或内部/外部触发)
- 触发事件(计数器开始,停止,初始化或由内部/外部触发计数)
- 输入捕获
- 输出比较
*********************************************************************************************************************************
STM32的定时器是个强大的模块,定时器使用的频率也是很高的,定时器可以做一些基本的定时,还可以做PWM输出或者输入捕获功能。
先看个图:
上图说明了,STM32中相关模块的总线结构,而这里用于测试的TIM3是接在了APB1上,APB1最大频率是36MHz,是算个低速的总线。
当APB1 的预分频系数为1 时,这个倍频器不起作用,定时器的时钟频率等于APB1 的频率;当APB1的预分频系数为其它数值(即预分频系数为2、4、8 或16)时,这个倍频器起作用,定时器的时钟频率等于APB1 的频率两倍。
也就是,当APB1不分频,TIM3的时钟速度为36MHz,当2分频是,APB1变成18MHz,但是TIM又会倍频,即TIM时钟等于18*2=36MHz。//为何这么设计...