TIM简介

1、TIM (Timer)定时器
2、定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断
3、16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时4、钟下可以实现最大59.65s的定时
5、不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能
6、根据复杂度和应用场景分为了高级定时器、通用定时器、基本定时器三种类型

定时器类型

STM32F03C8T6具有四个定时器

基本定时器的结构图

通用定时器的结构图


查看一下引脚定义表

高级定时器结构图

定时中断基本结构图


预分频器的时序

计数器计数频率:
CK_CNT=CK_PSC/(PSC+1)

代码实现

我们要新建一个工程然后打开MDK5
找到time.h的库文件


这些函数我们会用到的
然后就编写我们的time.c和time.h文件

#include "stm32f10x.h"                  // Device header
#include "time.h"
extern uint16_t Num;
void Timer2_Init(void)//通用定时器2初始化
{RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);//开启时钟TIM_InternalClockConfig(TIM2);//选择内部时钟TIM_TimeBaseInitTypeDef  TIM_TimeBaseInitStruct;//定义结构体  然后填写参数TIM_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV1 ;//选择1分频TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up;//计数器模式 这里选择为向上计数TIM_TimeBaseInitStruct.TIM_Period = 10000-1;//arr -1是因为有偏差  自动重装载值TIM_TimeBaseInitStruct.TIM_Prescaler = 7200-1;//psc  预分频系数  72M分频7200得到10K的TIM_TimeBaseInitStruct.TIM_RepetitionCounter = 0;//重复计数器高级定时器才有,这里直接给0TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInitStruct);//配置实基单元TIM_ClearITPendingBit(TIM2,TIM_FLAG_Update);//避免刚初始化就进入中断的问题TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);//使能中断  TIM2 向上计数 使能这样就可以了//配置优先级NVICNVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//配置NVIC分组 这里配置为分组2NVIC_InitTypeDef NVIC_InitStruct;//配置NVIC的结构体NVIC_InitStruct.NVIC_IRQChannel = TIM2_IRQn;//选择定时器2的中断NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;//使能NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 2;//强占优先级NVIC_InitStruct.NVIC_IRQChannelSubPriority = 1;//响应优先级NVIC_Init(&NVIC_InitStruct);TIM_Cmd(TIM2, ENABLE);//启动定时器
}//编写中断服务函数void TIM2_IRQHandler()
{if(TIM_GetFlagStatus(TIM2,TIM_FLAG_Update) == SET)//检查一下中断标志位{Num++;TIM_ClearITPendingBit(TIM2,TIM_FLAG_Update);//清除中断标志位}}

time2.h

#ifndef __TIME_H
#define __TIME_Hvoid Timer2_Init(void);//通用定时器2初始化#endif

实现效果


定时器以1s的速度在计数
到这里今天学习的内容就分享完成啦!

STM32定时器详解——TIM详解相关推荐

  1. STM32定时器---正交编码器模式详解

    编码器分类: 按工作原理:光电式.磁电式和触点电刷式 按码盘的刻孔方式:增量式和绝对式两类 由于博主接触面还不是很广,一共就用过两个种类的编码器,都是属于光电的 差分编码器:一般由8根线连接 信号线分 ...

  2. STM32 - 定时器的设定 - 基础 01.1 - Repetition counter

    前言:Repetition counter是一个STM32增强的计数器功能,有很多用途,本文尝试进行简单阐述: 我们理解为,就是定时器溢出再增加一个倍率rate 的控制.注意是倍率,也就是如果是定时1 ...

  3. STM32 定时器详解

    STM32 定时器详解 吃了一个猛亏,自己理解花了大半天时间,结果一看代码发现巨简单 算了,把自己理解的放上来吧 目录 STM32 定时器详解 前言 一.定时器种类和区分 二.时钟源 三.计数过程 3 ...

  4. STM32定时器之预分频器详解

    STM32定时器(TIM)之预分频器(PSC)详解 在STM32的定时器中,预分频器(Prescaler-PSC)用来将定时器时钟源进行分频输出. 预分频器的值由寄存器TIMx_PSC设定,是一个16 ...

  5. 【STM32学习】时钟配置详解

    [STM32学习]时钟配置详解 看懂时钟图 结合代码 外部高速时钟修改 看懂时钟图 在刚开始学习32的时候,并不会在意这些,或者即使看了也看的不是很明白.随着学习的深入,我们发现看门狗.定时器.ADC ...

  6. STM32接口FSMC/FMC难点详解

    STM32接口FSMC/FMC难点详解 转载   http://blog.sina.com.cn/s/blog_808bca130102x94k.html STM32F767的FMC将外部存储器划分为 ...

  7. STM32之NVIC的深入详解

    朋友们,如果你需要在STM32上移植RTOS,那么首先必须深入理解它的中断系统.[转载]STM32之NVIC的深入详解 什么是NVIC?即嵌套向量中断控制器(Nested Vectored Inter ...

  8. python线程池原理_Python定时器线程池原理详解

    这篇文章主要介绍了Python定时器线程池原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 定时器执行循环任务: 知识储备 Timer(int ...

  9. STM32 USB设备远程唤醒机制详解

    目录 1.USB Resume信号 2.USB远程唤醒的方式 3.J状态和K状态 4.STM32 USB设备远程唤醒机制详解 5.主机对设备远程唤醒功能状态的获取.清除和设置 1.USB Resume ...

最新文章

  1. iOS 中 load 和 initialize的实现顺序
  2. oracle如何给表上锁,【ORACLE】Oracle中发生表加锁、死锁的原因,查看,与解决方法...
  3. Android --- 命名规范
  4. 使用访问控制列表控制用户登录
  5. BZOJ 4242 水壶(BFS建图+最小生成树+树上倍增)
  6. 【项目调研+论文阅读】(目录)中文实体识别研究方法综述 day6
  7. PHP文件中定义加载资源文件
  8. 跳出公式,看清全局,图神经网络(GCN)原理详解
  9. java 类注释标准_Java 标准注释
  10. 拓扑排序 java_[Java]聊聊拓扑排序算法
  11. Mac解决Error: No such file or directory @ rb_sysopen报错问题
  12. Spring的事务控制
  13. 关于webpack登堂入室的必经之路(1)
  14. 在线免费体验的文字识别接口
  15. 系统设计中的集群隔离和机房隔离
  16. uniapp 埋点(友盟)
  17. Unity3D开发之折线图制作
  18. java计算机毕业设计会员商城管理系统源码+mysql数据库+系统+lw文档+部署
  19. 英语作文计算机国际会议开幕词,学术会议发言稿 英文(精选多篇)
  20. centos7 安装docker 报错 conflicts with file from package

热门文章

  1. Chrome浏览器屏蔽打印预览
  2. Servlet学习心得总结
  3. 华为p10和p10plus区别_华为p10和p10 plus哪个好 华为p10和p10plus区别【详解】
  4. 奇安信20200816笔试选选择题
  5. 巅峰之作推荐:遥仰凰华——仰望那份遥远的美丽 遥かに仰ぎ、麗しの(下载、汉化、简繁日攻略、存档)
  6. 一秀才和一女子后的对话,判官V5
  7. 摩托罗拉v3的java游戏_那里有支持摩托罗拉V3的Java游戏?
  8. 微软XP停止服务,国产软件采购量或上升
  9. 陌陌引流推广软件编程知识分享
  10. 详解如何用 CSS3 完成 3D transform变换