首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >STM32计时器周期不准确

STM32计时器周期不准确
EN

Stack Overflow用户
提问于 2015-02-02 23:43:55
回答 1查看 1.9K关注 0票数 0

我配置了一个频率为1 1MHz的计时器,并设置了一个每隔几微秒运行一次的isr。问题是,我在逻辑分析仪上测量的周期总是偏离1us。如果我将定时器频率设置为1 1kHz,则周期始终为1ms。发生这种情况是有原因的,还是我做错了什么?

这是我当前的定时器配置,实际周期是11us:

代码语言:javascript
运行
复制
uint16_t PrescalerValue = (uint16_t) ((SystemCoreClock / 2) / 1000000) - 1;
TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;

/* Time base configuration */
TIM_TimeBaseStructure.TIM_Period = 10;
TIM_TimeBaseStructure.TIM_Prescaler = PrescalerValue;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM7, &TIM_TimeBaseStructure);

/* TIM7 enable counter */
TIM_Cmd(TIM7, ENABLE);

我正在和Keil一起在STM32F205xx上使用TIM7。

EN

回答 1

Stack Overflow用户

发布于 2015-02-03 19:48:19

计时器周期也计算为Timer_Ticks-1,所以行

代码语言:javascript
运行
复制
TIM_TimeBaseStructure.TIM_Period = 10;

应该是

代码语言:javascript
运行
复制
TIM_TimeBaseStructure.TIM_Period = 9;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28281361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档