TIM

本文详细介绍了STM32F103C8T6定时器TIM3的配置,包括预分频器(PSC)和自动重载寄存器(ARR)的设置,以及如何计算定时器的计数时间和PWM周期。通过实例展示了当ARR设置为79时,定时器的溢出时间为4ms,即PWM周期。同时提到了CCxOF标志位在捕获过载情况下的作用。

ARPE分析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

输入捕获

1. CCxOF in TIMx_SR register

简述:

If a capture occurs while the CCxIF flag was
already high, then the over-capture flag CCxOF (TIMx_SR register) is set.
在这里插入图片描述

CCxOF 寄存器位说明:
在这里插入图片描述

补充说明:CCxIF in TIMx_SR register
在这里插入图片描述

定时器中断周期

这里以STM32F103C8T6 TIM3为例:
先看时钟配置
在这里插入图片描述
TIM_PSC寄存器(预分频寄存器)
在这里插入图片描述

PSC和ARR实际设置值如下:
在这里插入图片描述

定时器经过预分频之后的时钟频率(F)

F = 分频之前的时钟频率/(PSC+1)
= 72000000HZ / (3599+1)
= 20000HZ

定时器的计数一次的时间 (T)

T = 1/F = 1/20000 = 50us

当ARR为79时定时器溢出时间

= 50us * (79+1) = 4000us = 4ms
也就是说PWM的周期就是4ms

实验现象

在这里插入图片描述
PWM周期为4ms,也就是定时器进入中断的周期为4ms

### TIM中断原理 TIM(定时器)中断是STM32微控制器中常用的一种中断机制。定时器可以按照预设的时间间隔产生中断信号。以按键消抖为例,定时器可以解决抖动现象,未超时就发生中断,就重新计时,当抖动停止了,超过定时的时间,就可以调用中断函数去处理稳定后的按键中断事件 [^2]。 ### TIM中断使用方法 1. **结构体初始化**:以TIM2为例,设置定时器的相关参数,如时钟分频、计数模式、周期、预分频器等。 ```c TIM_ETRClockMode2Config(TIM2,TIM_ExtTRGPSC_OFF,TIM_ExtTRGPolarity_NonInverted,0x0F); TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct; TIM_TimeBaseInitStruct.TIM_ClockDivision=TIM_CKD_DIV4 ; TIM_TimeBaseInitStruct.TIM_CounterMode=TIM_CounterMode_Up; TIM_TimeBaseInitStruct.TIM_Period=7200-1; TIM_TimeBaseInitStruct.TIM_Prescaler=10000-1; TIM_TimeBaseInitStruct.TIM_RepetitionCounter=0; TIM_TimeBaseInit(TIM2,&TIM_TimeBaseInitStruct); ``` 2. **使能TIM**:使能定时器的更新中断。 ```c TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); ``` 3. **清除待处理标志位**:在中断处理前后,需要清除定时器的待处理标志位。 ```c TIM_ClearFlag(TIM2, TIM_FLAG_Update); ``` 4. **中断处理**:在中断服务函数中,判断是否为定时器更新中断,并清除中断标志。 ```c if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //TIM3中断进入 { // 清除中断 TIM_ClearITPendingBit(TIM3, TIM_IT_Update); } ``` ### TIM中断相关案例 以按键消抖为例,使用定时器可以解决按键抖动问题。当按键按下时,定时器开始计时,如果在定时时间内按键状态发生变化,则重新计时;当按键状态稳定超过定时时间后,调用中断函数处理按键事件 [^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值