STM32 定时器
STM32 的通用定时器可以被用于:测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和 PWM)等。
三种定时器
注:DMA是不通过CPU直接访问和操作寄存器的一种方式。
定时器原理框图

特点:
1. 时钟可以从低速的APB1总线上(APB1)获得(共4种获得方式,可以有8种时钟)
2. 16 位向上、向下、向上/向下(中心对齐)计数模式(TIMx_ARR),自动装载计数器(TIMx_CNT);
3. 16 位可编程(可以实时修改)预分频器(TIMx_PSC);
4. 4 个独立通道(TIMx_CH1~4),这些通道可以用来作为:
输入捕获
输出比较
PWM 生成(边缘或中间对齐模式)
单脉冲模式输出
5. 可使用外部信号(TIMx_ETR)控制定时器和定时器互连(可以用 1 个定时器控制另外一个定时器)的同步电路;---定时器级联
6. 可产生DMA中断;
计数器时钟可以由下列时钟源提供:
内部时钟(CK_INT)
外部时钟模式1:外部输入脚(TIx)
外部时钟模式2:外部触发输入(ETR)
内部触发输入(ITRx):使用一个定时器作为另一个定时器的预分频器,如可以配置一个定时器Timer1而作为另一个定时器Timer2的预分频器。
内部时钟源计算方法:

定时器中断实现步骤:
1.使能定时器时钟。
RCC_APB1PeriphClockCmd();
2. 初始化定时器,配置ARR,PSC。
TIM_TimeBaseInit();
3.开启定时器中断,配置NVIC。
void TIM_ITConfig();
NVIC_Init();
4. 使能定时器。
TIM_Cmd();
5. 编写中断服务函数。
TIMx_IRQHandler();

浙公网安备 33010602011771号