STM32定时器定时器时间的计算.DOC

上传人:天*** 文档编号:1339612 上传时间:2019-02-09 格式:DOC 页数:2 大小:14.50KB
下载 相关 举报
STM32定时器定时器时间的计算.DOC_第1页
第1页 / 共2页
STM32定时器定时器时间的计算.DOC_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

1、STM32 定时器(一)定时器时间的计算2010-08-20 11:35STM32的定时器是灰常 NB 的,也是灰常让人头晕的( 当然是对于白菜来说的)。STM32中的定时器有很多用法:(一)系统时钟(SysTick)设置非常简单,以下是产生1ms 中断的设置,和产生10ms 延时的函数:void RCC_Configuration(void)RCC_ClocksTypeDef RCC_ClockFreq;SystemInit();/源自 system_stm32f10x.c 文件,只需要调用此函数,则可完成 RCC 的配置.RCC_GetClocksFreq(/SYSTICK 分频-1ms

2、的系统时钟中断if (SysTick_Config(SystemFrequency / 1000) while (1); / Capture errorvoid SysTick_Handler(void)/在中断处理函数中的程序while(tim)tim-;/调用程序:Delay_Ms(10);当然,前提是要设置好,变量 tim 要设置成 volatile 类型的。(二)第二种涉及到定时器计数时间(TIMx)/*TIM3时钟配置*/TIM_TimeBaseStructure.TIM_Prescaler = 2; /预分频(时钟分频)72M/(2+1)=24MTIM_TimeBaseStruct

3、ure.TIM_CounterMode = TIM_CounterMode_Up; /向上计数TIM_TimeBaseStructure.TIM_Period = 65535; /装载值18k/144=125hzTIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;TIM_TimeBaseStructure.TIM_RepetitionCounter = 0x0;TIM_TimeBaseInit(TIM3,定时时间计算:TIM_TimeBaseStructure.TIM_Prescaler = 2;/分频2 72M/(2+1)/2=24M

4、HzTIM_TimeBaseStructure.TIM_Period = 65535; /计数值65535(1+TIM_Prescaler )/72M)*(1+TIM_Period )=(1+2)/72M)*(1+65535)=0.00273秒=366.2Hz */注意两点(来自大虾网,未经检验)(1)TIMx(1-8 ) ,在库设置默认的情况下,都是 72M 的时钟;(2)TIM_TimeBaseStructure.TIM_RepetitionCounter=0;是重复计数,就是重复溢出多少次才给你来一个溢出中断,它对应的寄存器叫 TIM1 RCR.如果这个值不配置,上电的时候寄存器值可是随机的,本来1秒中断一次,可能变成 N 秒中断一次,让你超级头大!

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

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。