浅析stm32定时器tim_period和tim_prescaler-20180322

上传人:小** 文档编号:93197007 上传时间:2019-07-18 格式:DOC 页数:1 大小:17.99KB
返回 下载 相关 举报
浅析stm32定时器tim_period和tim_prescaler-20180322_第1页
第1页 / 共1页
亲,该文档总共1页,全部预览完了,如果喜欢就下载吧!
资源描述

《浅析stm32定时器tim_period和tim_prescaler-20180322》由会员分享,可在线阅读,更多相关《浅析stm32定时器tim_period和tim_prescaler-20180322(1页珍藏版)》请在金锄头文库上搜索。

1、浅析STM32定时器TIM_Period和TIM_PrescalerBy:T7 Date:20180322At:YSU-B307-21. /配置定时器基础结构体2. TIM_DeInit(TIM2);3. TIM_TimeBaseStructure.TIM_Period=(1000-1);/设置在下一个更新事件装入活动的自动重装载寄存器周期的值计数到1000为1ms4. TIM_TimeBaseStructure.TIM_Prescaler=(72-1);/设置用来作为TIMx时钟频率除数的预分频值1M的计数频率1US计数5. TIM_TimeBaseStructure.TIM_ClockDi

2、vision=TIM_CKD_DIV1;/不分频6. TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;/TIM向上计数模式7. TIM_TimeBaseInit(TIM6,&TIM_TimeBaseStructure);/根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位8. 9. TIM_ClearFlag(TIM6,TIM_FLAG_Update);/清除更新中断,免得一打开中断立即产生中断10. TIM_ITConfig(TIM6,TIM_IT_Update,ENABLE);/打开定时

3、器更新中断11.分析这段代码:TIM_TimeBaseStructure.TIM_Period = 1000 1;TIM_TimeBaseStructure.TIM_Prescaler = 72 1;1. 定时时间T = 1000 * 72 / 72000 000 = 1ms2. TIM_Prescaler = 72 1;t = 72 / 72000 000 = 1us,即TIMx-CNT每1us加一次3. TIM_Period = 1000; 当TIMx-CNT计数值达到1000us(也就是一开始计算的定时时间1ms),进入中断服务函数,msHcCount将自动加一1. voidTIM6_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。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号