STM32常见的定时器资源
系统滴答定时器SysTick
集成在cortex M3内核中的定时器,他并不属于芯片厂商外设,即使用ARM内核的不同厂商都拥有结构相同的系统定时器。主要目的是给RTOS提供时钟节拍做时间校准
看门狗定时器 WatchDog
实时时钟RTC
基本定时器:TIM6 TIM7
通用定时器:TIM2 TIM3 TIM4 TIM5
在基本定时器的基础上,实现输出比较、输出捕获、PWM生成、单脉冲模式输出等功能,使用最广泛
高级定时器:TIM1 TIM8
STM32通用定时器的重要知识点
STM32的通用定时器是一个通过可编程预分频器(prescaler)驱动的16位自动重装主计数器(counter period)构成。可以对内部时钟或出发员以及外部时钟或触发源进行计数。
基本工作原理:首先,定时器时钟信号送入16位可编程预分频器(prescaler),该分频器系数在0~65535之间的任意数值。预分频器溢出后,会向16位的主计数器发出一个脉冲信号。
预分频器本质上是一个加法计数器,预分频系数实际上就是加技术的溢出值。
定时器发生中断时间的计算方法:
定时时间 = (prescaler+1)*(counter period+1)*1/定时器时钟频率
STM32CubeMX中关于TIM的配置
时钟信号32MHZ 每隔500ms翻转一次PE1的输出电平
设置clock Source时钟源
设置prescaler和counter period参数
设置NVIC嵌套向量中断控制器
实验:
利用TIM2实现间隔定时,每隔0.2S将LED1(PE1)的开关状态翻转
利用TIM3实现间隔定时,每隔1S将LED2(PE2)的开关状态翻转
修改TIM2的初始化代码,改成每隔0.5S将LED1的开关状态翻转
在这里插