STM32
直播中

廖阿朋

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

stm32f10x通用定时器的功能特点有哪些呢

STM32f10x系列共有几个定时器呢?

stm32f10x通用定时器的功能特点有哪些呢?

回帖(1)

卢表镜

2021-11-24 09:32:58
  stm32f10x系列最多有8个定时器
  3种定时器
  1.高级定时器
  2.基本定时器
  3.通用定时器
  
  
  
  
  
  定时器中断
  时钟选择
  计数器时钟可以由下列时钟源提供:
  1.内部时钟(CK_INT)(默认)
  2.外部时钟模式1:外部输入脚 (TIx)
  3.外部时钟模式2:外部触发输入(ETR)
  4.内部触发输入(ITRx):使用一个定时器作为另一个定时器的预分频器,如可以配置一个定时器Timer1而作为另一个定时器Timer2的预分频器
  
  
  
  定时器中断相关寄存器
  1.计数器当前值寄存器CNT
  
  2.预分频寄存器PSC
  
  3.自动重装载寄存器ARR
  
  4.控制寄存器1 CR1
  
  5.DMA中断使能寄存器DIER
  
  定时器中断库函数
  1.定时器初始化函数
  void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);
  
  
  预分频系数
  计数模式
  自动装载值
  
  2.定时器使能函数
  void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState);
  
  3.定时器中断使能函数
  void TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState);
  
  4.状态标志位的获取和清除
  FlagStatus TIM_GetFlagStatus(TIM_TypeDef* TIMx, uint16_t TIM_FLAG);
  void TIM_ClearFlag(TIM_TypeDef* TIMx, uint16_t TIM_FLAG);
  ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t TIM_IT);
  void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT);
  
  定时器中断的配置
  1.使能定时器时钟
  2.初始化定时器
  3.开启定时器中断,配置中断
  4.使能定时器
  5.编写中断服务函数
  溢出时间计算
  
  延时500ms
  ARR设置为4999,PSC设置为7199,TCLK是时钟周期
  
  PWM输出
  
  PWM原理
  就是设置一个阈值,当大于阈值时输出高电平,低于阈值输出低电平
  
  
  
  PWM库函数
  1.初始化函数
  
  
  2.设置比较值函数
  
  3.使能输出比较预装载
  
  4.使能自动重装载的预装载寄存器允许位
  pwm配置步骤
  
  
  注:如果是普通定时器,不需要加上
  
  对于TIM1和TIM8高级定时器则需要加上
  输入捕获
  工作过程:通过检测TIMx_CHx上的边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候,将当前定时器的值(TIMx_CNT)存到对应的捕获/比较寄存器(TIMx_CCRx)里面,完成一次捕获
  
  步骤1:设置输入捕获滤波器
  步骤2:设置输入捕获极性
  步骤3:设置输入捕获映射通道
  步骤4:设置输入捕获分频器
  步骤5:捕获到有效信号开启中断
  最后看看定时器对应引脚
  库函数的配置
  1.输入捕获通道初始化函数
  
  
  捕获通道
  捕获极性
  映射关系
  分频系数
  滤波器
  2.通道极性设置独立函数
  
  3.获取通道捕获值
  
  输入捕获配置步骤
  
  
举报

更多回帖

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