1. 定时器的分类
2. 定时器特性表
3. 核心时基单元
影子寄存器才是实际起作用的,ARR只是缓冲
递增时,当 CNT == ARR
改变寄存器也可产生软件更新事件
更新事件产生,将于装载寄存器的值加载到对应的影子寄存器中
3.1. 计数模式和溢出条件
3.2. 溢出时间计算
4. 嘀嗒(Systick系统)定时器
定时器是STM32中一个非常强大的外设,功能强大,用途很广。
STM32F103系列提供了 8 个定时器:
1)2 个基本定时器(TIM6、7),
2)4个通用定时器(TIM2—5),
3)2个高级定时器(TIM1、TIM8)。
系统定时器(SysTick系统)是属于CM3内核,内嵌在NVIC中。
4.1. Systick的执行过程
4.2. 基于寄存器定时器LED闪烁
递减计数器在时钟的驱动下,从重装载寄存器的初值开始往下递减计数到0(在递减的过程中值可以在STK_VAL中查看到),产生中断和置位COUNTFLAG标志。然后又将重装载寄存器值开始重新递减计数,如此循环。
4.3. 基于HAL定时器LED闪烁
void HAL_IncTick(void)
{
uwTick += uwTickFreq;
if (uwTick % 1000 == 0)
{
printf("%d\r\n", uwTick);
HAL_GPIO_TogglePin(LED_1_GPIO_Port, LED_1_Pin);
}
}
5. 基本定时器
基本定时器TIM6和TIM7各包含一个16位自动装载计数器,由各自的可编程预分频器驱动。
这个2个基本定时器只能向上计数,由于没有外部IO,所以只能计时,不能对外部脉冲进行计数。
功能:定时中断,主模式,触发DAC。