学习目标:
学习内容:
定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断
16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时
不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能
根据复杂度和应用场景分为了高级定时器、通用定时器、基本定时器三种类型
定时器类型
基本定时器
通用定时器
高级定时器
定时中断基本结构
预分频器时序
计数器计数频率:CK_CNT = CK_PSC / (PSC + 1)
计数器时序
计数器溢出频率:CK_CNT_OV = CK_CNT / (ARR + 1)
= CK_PSC / (PSC + 1) / (ARR + 1)
计数器溢出时间为:溢出频率的倒数
计数器没有影子寄存器的情况(改变自动加载寄存器,不需要等到更行结束)
程序编写
1.开启TIm2时钟(apb1)开启后才能选择是外部时钟还是内部时钟
2.选择内部时钟成为tim的时钟源(TIM_InternalClockConfig)
3.配置时基单元,初始化(TIM_TimeBaseInit)
TIM_TimeBaseInitStruct.TIM_Period //ARR自动重装器的值
TIM_TimeBaseInitStruct.TIM_Prescaler //psc预分频器的值
4.使能中断(TIM_ITConfig),打开了去NVIC的通路
5.中断分组
6.中断初始化(NVIC)
7.定时器使能(tim_cmd)
在使用外部时钟作为时钟源
1.用外部时钟模式2(TIM_ETRClockMode2Config)
2.需要初始化GPIOA的pin0角