一.定时器
1.类型
STM32F103C8T6定时器资源:TIM1,TIM2,TIM3,TIM4
我们这次用通用定时器
2.基本定时器
预分频器对来自RCC_TIMxCLK的72MHz进行预分频,比如写0就是不分频或1分频,输出频率=输入频率=72MHz。写1就是2分频,输出频率=输入频率/2=36MHz。即实际分频系数=预分频器的值+1
计数器对预分频后的计数时钟进行计数,计数时钟每来一个上升沿计数器的值就加1,计数器最高可加到65535(16位),再加的话,计数器就会回到0重新开始,所以计数器的值在计时过程中会不断地自增运行,当自增运行到目标值时,产生中断,那就完成了定时的任务。
自动重装寄存器就是存储目标值的寄存器,存我们写入的计数目标,当计数值等于自动重装值时,计时时间到了,自动重装寄存器就会产生一个中断信号并且清零计数器,计数器自动开始下一次的计数计时。
向上的箭头代表会产生中断信号,“更新中断”之后,就会通往NVIC,我们再配置好NVIC的定时器通道,那定时器的更新中断就能得到CPU的响应了。
向下的箭头代表会产生一个事件,“更新事件”不会触发中断,但可以触发内部其他电路的工作。
主从触发模式:能让内部的硬件在不受程序的控制下实现自动运行
3.通用定时器
对于基本定时器而言,定时只能选择内部时钟,也就是系统频率72MHz
对于通用计时器而言,时钟源不仅可以选择内部的72MHz时钟,还可以选择外部时钟。第一个外部时钟是来自TIMx_ETR引脚上的外部时钟(外部时钟模式2),第二个外部时钟是TRGI,暂且把TRGI当作外部时钟的输入来看(外部时钟模式1)
二.定时中断基本结构