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.获取通道捕获值
输入捕获配置步骤
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.获取通道捕获值
输入捕获配置步骤
举报