使用高级定时器,定时器1遇到的问题

本文档探讨了在STM32中使用高级定时器TIM1时遇到的中断延迟问题。通过初始化定时器1并设置为1S切换LED状态,发现在44秒后才切换一次。问题根源在于高级定时器的重复计数器配置。经过分析,调整TIM_RepetitionCounter参数解决了问题。提供了一个完整的TIM1初始化和中断处理函数的示例。

初始化定时器1,开启定时器1中断,定时1S切换LED的状态。但是写好之后,测试发现灯的状态在44s才切换一次,一直找不到原因。最后发现了一点是高级定时器和普通定时器的区别:

TIM_RepetitionCounte是用来配置重复计数,就是重复溢出多少次才给你来一个溢出中断,只有高级定时器需要配置。


下面是定时器1的程序:

#include "Timer1.h"
#include "dgus_drv.h"


void Timer1_Init(u16 arr,u16 psc)
{
NVIC_InitTypeDef NVIC_InitStructure;
TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);//开启定时器1时钟


TIM_TimeBaseStructure.TIM_Period = arr; 
TIM_TimeBaseStructure.TIM_Prescaler =psc; 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值