STM32F1 高级定时器TIM1定时不准确

在配置STM32F1的高级定时器TIM1时,遇到定时不准确的问题。通过计算,期望LED每1s闪烁一次,但实际为每2s闪烁。在检查时钟和定时器配置无误后,发现TIM_TimeBaseStructure.TIM_RepetitionCounter未设置,将其设为0解决了问题。TIM_RepetitionCounter作为重复计数器,对TIM1的中断周期有直接影响,不同的设置会影响LED的闪烁间隔。例如,当TIM_RepetitionCounter分别为0、1、2、3、4时,LED分别会在1s、2s、3s、4s、5s后改变状态。这是对TIM1重复计数器功能的初步理解和实践应用。
摘要由CSDN通过智能技术生成

问题:

配置:使用高级定时器TIM1设置定时器 5ms进入一次中断  实现LED1s闪烁。

根据公式可求出频率:72000000/(7199+1)/(49+1) = 200Hz ~ 5ms;

理论上是LED每1s改变一次状态,但实际上却是每2s改变一次。 

 

解决:

对于这个问题反复检查了时钟配置、定时器配置都没问题,于是搜索到在定时器配置中加一句TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;  就可以解决。

果然  加入之后LED每1s改变一次状态。

原因:

TIM_RepetitionCounter为重复计数器的值,只对TIM1和TIM8起作用

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值