教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 资格考试 >

浅析STM32定时器TIM - Period和TIM - Prescaler-20180322

来源:网络收集 时间:2026-08-24
导读: 浅析STM32定时器TIM_Period和TIM_Prescaler By:T7 Date:20180322 At:YSU-B307-2 1. //配置定时器基础结构体 2. TIM_DeInit(TIM2); 3. TIM_TimeBaseStructure.TIM_Period = (1000-1); //设置在下一个更新事件装入 活动的自动重装载寄存器周期的值 计数到1000

浅析STM32定时器TIM_Period和TIM_Prescaler

By:T7 Date:20180322 At:YSU-B307-2

1. //配置定时器基础结构体 2. TIM_DeInit(TIM2);

3. TIM_TimeBaseStructure.TIM_Period = (1000-1); //设置在下一个更新事件装入

活动的自动重装载寄存器周期的值 计数到1000为1ms

4. TIM_TimeBaseStructure.TIM_Prescaler =(72-1); //设置用来作为TIMx时钟频率

除数的预分频值 1M的计数频率 1US计数

5. TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;//不分频 6. TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上

计数模式

7. TIM_TimeBaseInit(TIM6, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInit

Struct中指定的参数初始化TIMx的时间基数单位 8.

9. TIM_ClearFlag(TIM6, TIM_FLAG_Update); //清除更新中断,免得一打开中断立

即产生中断

10. TIM_ITConfig(TIM6,TIM_IT_Update,ENABLE); //打开定时器更新中断 11.

分析这段代码:

TIM_TimeBaseStructure.TIM_Period= 1000 – 1; TIM_TimeBaseStructure.TIM_Prescaler = 72– 1;

1. 定时时间T = 1000 * 72 / 72000 000 = 1ms

2. TIM_Prescaler = 72 – 1; t = 72 / 72000 000 = 1us,即TIMx->CNT每1us加一次

3. TIM_Period = 1000;当TIMx->CNT计数值达到1000us(也就是一开始计算的定时时间

1ms),进入中断服务函数,msHcCount将自动加一

1. void TIM6_IRQHandler(void) //TIM3中断 2. {

3. if (TIM_GetITStatus(TIM6, TIM_IT_Update) != RESET) //检查TIM3更新中断

发生与否 4. {

5. TIM_ClearITPendingBit(TIM6, TIM_IT_Update ); //清除TIMx更新

中断标志

6. msHcCount++; 7. } }

4.当定时器停止工作时,总的定时时间为t = msHcCount * 1000 + TIMx->CNT单位是

us。

浅析STM32定时器TIM - Period和TIM - Prescaler-20180322.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/413394.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)