STM32
直播中

王玲

7年用户 1403经验值
私信 关注
[问答]

STM32通用定时器的重要知识点

STM32的通用定时器是什么?
STM32的通用定时器是怎样进行工作的?

怎样去计算STM32通用定时器的发生中断时间?

回帖(1)

胡芝恒

2021-9-26 11:08:11
  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的开关状态翻转
  
  在这里插
  
  
  
  
  
  
  
  
  时钟系统框图:
  
  HSI RC由RC振荡器产生,产生的频率不稳定 高速的内部时钟 频率大概为8MHz
  HSE 高速的外部时钟由外部晶振产生 频率为4MHz~16MHz
  LSI RC振荡器产生,低速的内部时钟 频率为40kHz,提供低功耗时钟,WDG
  LSE是低速外部时钟,RTC 外部晶振产生
  PLL为倍频输出,最大输出频率最大不超过72MHz 时钟输入源自己选择 可进行2~16倍
  系统时钟SYSCLK三个时钟源:HSI振荡器时钟 HSE振荡器时钟 PLL时钟
  任何一个外设使用前,必须先使能其相应的时钟。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分