文档章节

STM32 之定时时间计算

青春无极限
 青春无极限
发布于 2015/07/15 13:39
字数 307
阅读 277
收藏 1

 

void Time_Init(void)
{
  TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
  TIM_DeInit(TIM3);            //复位TIM3定时器
  TIM_TimeBaseStructure.TIM_Period =7999;          //设置自动重装载寄存器锁存值,1ms溢出      
  TIM_TimeBaseStructure.TIM_Prescaler = 799800;      //9分频 
  TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;       //时钟分频因子           
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //计数器向上计数模式                     
  
  TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);    //写TIM3各寄存器参数
  TIM_ClearFlag(TIM3,TIM_FLAG_Update);	  //清除TIM3的标志位
  TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);	//使能TIM中断
  TIM_Cmd(TIM3,ENABLE);	 //使能TIM外设
}

以上为stm32定时器设置代码

TIM_Period
TIM_Period 设置了在下一个更新事件装入活动的
自动重装载寄存器周期的值。它的取值必须在 0x0000 和
0xFFFF 之间。
TIM_Prescaler
TIM_Prescaler 设置了用来作为 TIMx 时钟频率除数的预分频值。它的取值必须在 0x0000 和 0xFFFF 之间

首先设置预分频值,

Td = Ti / (TIM_Prescaler + 1

Td定时器的计数频率

Ti 内部时钟源频率(APB1的倍频器送出时钟)

TIM_Prescaler  用户设定的预分频系数,取值范围0~65535。

例如:RCC中AHB=72MHZ、APB1=36MHZ、APB2=72MHZ,则CK_INT=72MKZ。

假如用的是 TIM3 TIM3属于APB1 则 Ti=36MHZ 取TIM_Prescaler=7199

则 Td = 36Mhz / 7200 = 5000hz 故 则定时器的计数周期=1/5000HZ=0.2ms

则如果想定时1s TIM_Period = 5000  

5000 * 0.2 ms = 1s





© 著作权归作者所有

青春无极限
粉丝 2
博文 129
码字总数 71498
作品 0
卢湾
程序员
私信 提问
STM32时钟配置与SysTick配置_基于STM32F103

【一】前言 STM32前后台程序编程时,最基本的配置应当是对其时钟和系统定时器的配置,对标准库而言,调用SysTickInit ();。如果采用HAL库,首先还应该调用HALInit();初始化HAL库。 此处采用标...

u010834669
2018/05/05
0
0
STM32之SysTick定时器

SysTick-------操作系统的心跳 SysTick是系统滴答定时器,可以说是操作系统的的“心跳”,它被绑在NVIC中,用于产生SysTick异常(异常号:15)。一旦产生SysTick异常,就会产生滴答中断,这个...

panrenqiu
2018/04/14
0
0
STM32系统滴答_及不可不知的延时技巧 - (上)

我想每个单片机爱好者及工程开发设计人员都有过点灯的经历。流水灯是个好东西,尤其是在调试资源有限的环境中,有时会帮上大忙。 然在最初入门时,如何让这些小灯们按照我们的想法欢快地跑起...

小汉憨憨
2014/04/29
9.1K
0
STM32系统滴答_及不可不知的延时技巧 - (下)

下面为大家介绍一个曾见过的在裸机系统中,非阻塞延时的巧妙设计,当时它是被用在一导航影音娱乐系统的MCU驱动软件中,在此我对其作了一定的改动。 此章节涉及到STM32内容不多,以软件为主。...

小汉憨憨
2014/05/07
1K
3
C 语言printf函数遇到的奇怪问题 ?

今在STM32串口打印调试信息时遇到一奇怪问题: 描述如下: 单片机要用printf打印消息,需重定向,在STM32中实现如: 我利用定时一秒打印一心跳消息时,如下: 但当 printf(" Tick \n");打印字...

OceanStack
2014/11/18
343
6

没有更多内容

加载失败,请刷新页面

加载更多

关于AsyncTask的onPostExcute方法是否会在Activity重建过程中调用的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/XG1057415595/article/details/86774575 假设下面一种情况...

shzwork
今天
6
0
object 类中有哪些方法?

getClass(): 获取运行时类的对象 equals():判断其他对象是否与此对象相等 hashcode():返回该对象的哈希码值 toString():返回该对象的字符串表示 clone(): 创建并返此对象的一个副本 wait...

happywe
今天
6
0
Docker容器实战(七) - 容器中进程视野下的文件系统

前两文中,讲了Linux容器最基础的两种技术 Namespace 作用是“隔离”,它让应用进程只能看到该Namespace内的“世界” Cgroups 作用是“限制”,它给这个“世界”围上了一圈看不见的墙 这么一...

JavaEdge
今天
8
0
文件访问和共享的方法介绍

在上一篇文章中,你了解到文件有三个不同的权限集。拥有该文件的用户有一个集合,拥有该文件的组的成员有一个集合,然后最终一个集合适用于其他所有人。在长列表(ls -l)中这些权限使用符号...

老孟的Linux私房菜
今天
7
0
面试套路题目

作者:抱紧超越小姐姐 链接:https://www.nowcoder.com/discuss/309292?type=3 来源:牛客网 面试时候的潜台词 抱紧超越小姐姐 编辑于 2019-10-15 16:14:56APP内打开赞 3 | 收藏 4 | 回复24 ...

MtrS
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部