你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32高级定时器定时变慢

[复制链接]
STMCU小助手 发布时间:2021-8-19 14:04
在做一个项目时,为了节约时间将通用定时器的 定时代码直接改动用来驱动高级定时器,发现时钟比预想的慢了六七倍,百思不得其解。


经过各种方式查找后发现是配置高级定时器时一个参数没有配置,造成有定时变慢


  改动之前
  1. <font face="微软雅黑" size="3">
  2. static void TIM1_Mode_Config(void)
  3. {
  4. TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;

  5.   /* Time base configuration,输出pwm频率为1KHZ */                 
  6.   TIM_TimeBaseStructure.TIM_Period = 100-1;       //当定时器从0计数到100,即为100次,为一个定时周期
  7.   TIM_TimeBaseStructure.TIM_Prescaler = (SystemCoreClock/100000)-1;            //设置预分频:不预分频,即为72MHz
  8.   TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1 ;        //设置时钟分频系数:不分频(这里用不到)
  9.   TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //向上计数模式
  10.   //TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;
  11.   TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
  12. }
  13. </font>
复制代码
改动之后
  1. <font face="微软雅黑" size="3">static void TIM1_Mode_Config(void)
  2. {
  3. TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  4.         TIM_OCInitTypeDef  TIM_OCInitStructure;

  5.   /* Time base configuration,输出pwm频率为1KHZ */                 
  6.   TIM_TimeBaseStructure.TIM_Period = 100-1;       //当定时器从0计数到100,即为100次,为一个定时周期
  7.   TIM_TimeBaseStructure.TIM_Prescaler = (SystemCoreClock/100000)-1;            //设置预分频:不预分频,即为72MHz
  8.   TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1 ;        //设置时钟分频系数:不分频(这里用不到)
  9.   TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //向上计数模式
  10.   TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;
  11.   TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
  12. }
  13. </font>
复制代码
可以看出增加了TIM_RepetitionCounter 的配置,该参数表明向下计数到多少值时产生中断更新


固件库中的相关说明
1.png


查看固件库中的代码,发现库中更改了RCR寄存器的值
2.png


查看手册中关于该寄存器的描述
3.png


该寄存器的复位值为0,所以导致定时器变慢的原因可能是TIM_TimeBaseStructure 结构体中的值TIM_RepetitionCounter没有初始化为0就传给了库函数,其值可能为随机值,从而造成问题。


收藏 评论0 发布时间:2021-8-19 14:04

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版