目录

定时器的作用

PSC预分频器

CNT计数器

自动重装载寄存器


定时器的作用

为什么要使用定时器,在写单片机流水灯的时候,会使用到delay函数,delay函数会让程序在delay那个位置等待,等待期间系统不会处理其他事情,直到等待结束,这很浪费系统资源。

而定时器是个外设,独立出来运行,配置好定时器让定时器固定一个间隔产生一个中断,然后单片机再去中断函数里执行一些程序,这就可以节约资源,不会让单片机处于等待期间。

基本定时器框图如下:

其中下面的三个:PSC预分频器、CNT计数器、自动重装在寄存器是时基单元的三个组成部分。

PSC预分频器

在使用定时器的计时功能时,内部时钟会给到PSC上进行分频,为了方便计数,需要设置一个合适的分频值。

例如:设置主频为72Mhz,设置PSC预分频器为7200分频,则可以得到一个10Khz的时钟频率给计数器。因为频率是10khz,周期是t=1/f,可以得到周期是0.0001s,即0.1ms,也就是计数器0.1ms计数加1。

CNT计数器

计数器的作用就是它的名字,计数,需要有输入,可以是时钟输入,也可以是外部输入。外部输入可以是IO口的按键输入,可以设置成按键按下一次计数器加1,那么计数器就可以保存按键按下的次数。

自动重装载寄存器

计数器的计数限制。配置自动重装载寄存器之后,可以再计数器计到一定次数之后,清零计数器,重新计数,并可以产生中断、DMA、事件。

例如:

配置STM32主频72Mhz,配置定时器的预分频器为7200,则可以得到10khz的时钟给CNT计数器,CNT计数器每0.1ms计数加1,再配置自动重装载寄存器值为5000,也就是CNT计数到5000时重新计数,CNT计5000次就是500ms,也就可以500ms产生一次中断

例:

配置定时器的时钟成36Mhz时,配置预分频器3600,可以得到10khz的时钟给CNT计数器

CNT计数器每0.1ms计数加1,再配置自动重装载寄存器值为1000,也就是CNT计数到1000时重新计数,CNT计1000次就是100ms,也就是100ms产生一次中断

STM32F103学习笔记(5.0)——定时器TIM相关推荐

  1. STM32F103学习笔记(5)——数码管驱动TM1650使用

    一.简介 TM1650 是一种带键盘扫描接口的 LED(发光二极管显示器)驱动控制专用电路.内部集成有 MCU 输入输出控制数字接口.数据锁存器.LED 驱动.键盘扫描.辉度调节等电路.TM1650 ...

  2. STM32F103学习笔记四 时钟系统

    STM32F103学习笔记四 时钟系统 本文简述了自己学习时钟系统的一些框架,参照风水月 1. 单片机中时钟系统的理解 1.1 概述 时钟是单片机的脉搏,是单片机的驱动源 用任何一个外设都必须打开相应 ...

  3. STM32F103学习笔记(2)——收音机模块TEA5767使用

    一.简介 TEA5767是由菲利普公司推出的一款低功耗立体声收音机接收器芯片.频率范围从76-108MHz自动数字调谐.高灵敏度,高稳定性,低噪音,收音模块.一片低功耗电调谐调频立体声收音机电路,其内 ...

  4. RK3399学习笔记 1.0.3---python环境 Firefly Core-3399pro-jd4 Win10上RKNN工具安装

    RK3399学习笔记 1.0.3---python环境 Firefly Core-3399pro-jd4 Win10上RKNN工具安装 读取模型各层 1,最好在Conda下新建一个虚拟环境进行安装. ...

  5. Python学习笔记 1.0 基础内容篇章

    Python学习笔记 1.0 基础内容篇章 注释 变量 一.定义变量 二.使用变量 bug和debug bug: Debug工具: 数据类型 认识数据类型 在定义数据类型时发生的错误: 数据类型的补表 ...

  6. 数据可视化清新版【chart.js】学习笔记8.0—极地图(Polar Area)

    Polar Area--(极地图) 极地面积图类似于饼图,但每个线段具有相同的角度 - 线段的半径因值而异.当我们想要显示类似于饼图的比较数据,同时也要显示上下文的值的范围时通常使用这种类型的图表. ...

  7. STM32F103学习笔记(3.0)——中断

    目录 中断定义 中断常见使用情景 1.外部中断EXTI 2.外设中断 优先级 1.优先级的规则: 2.中断向量表: NVIC 1.NVIC框图 2.配置NVIC代码 中断定义 中断装置和中断处理程序统 ...

  8. STM32学习笔记(3) TIM基本定时器

    目录 1.基本定时器 2.基本定时器TIM的工作原理 2.1范例:定时1ms的计算 3.程序流程: 3.1配置时基初始化结构体 3.1.1时钟线的选择 3.1.2开启定时器更新中断 3.1.3TIM_ ...

  9. 基于STM32G431嵌入式学习笔记——七、定时器定时

    一.题目引入 上述为第13届蓝桥杯省赛节选内容,为了研究定时器的机理并独立书写计时函数,上述内容简化为以下要求: ①按下B4按键,LD1点亮5s后熄灭 ②按下B3按键,LD2以0.1秒为间隔切换亮灭状 ...

  10. 嵌入式Linux学习笔记(0)基础命令。——Arvin

    学习记录: 到今天为止ARM裸机开发学习进程:1.2.1-1.2.14 预科班知识Linux介绍学习进程:0.2.1-0.2.6 学习内容笔记: 学习了Linux的开发方式的优劣介绍 学习了常用文件夹 ...

最新文章

  1. redis 安装启动及设置密码windows
  2. c语言循环并行处理,C语言设计并行处理
  3. java面向对象程序设计董小圆_2017-2018-2 20165325 实验三《Java面向对象程序设计》实验报告...
  4. 2012.12.26日学习笔记
  5. webpack轻松入门教程
  6. yii2通过url访问类中的方法_行为型设计模式 访问者模式
  7. ubuntu 16.04下切换python版本小结
  8. Mr.J--Java异常处理总结
  9. test函数java,js中test()函数在正则中使用
  10. 基于深度卷积神经网络的玉米病害实时识别检测系统
  11. redux-chunk中间件的安装和使用-(二)
  12. linux kali局域网远程桌面,kali使用rdesktop连接Windows远程桌面
  13. Win10PE纯净版制作过程
  14. 编译原理 实验2《预测分析法设计与实现》
  15. 2.过滤函数-filter/filter-out
  16. c++ 输出正三角形图形
  17. 《富爸爸穷爸爸 》 读书笔记
  18. python+opencv代码给证件照换底色(别再用PS啦)(转载)
  19. 毕业设计-基于SpringBoot幼儿园管理系统
  20. nuxt启动报错: Error: getaddrinfo ENOTFOUND 0

热门文章

  1. 如何给pdf文件添加书签
  2. 最短路径 Dijkstra算法
  3. 重塑股份携手济平新能源,共同开拓燃料电池行业发展全新格局
  4. php的js定义全局变量,使用vue.js怎么定义全局变量
  5. Spring配置数据源没有maxActive和maxWait参数解决方法
  6. SyncFusion 的免费电子书
  7. 2022年12月国内外数据库排名
  8. Mac配置ITerm2
  9. 【Elasticsearch】Elasticsearch中 aggs (桶)聚合查询和进行二次聚合查询
  10. 茂名天源石化演练:暴雪机器人、涡喷消防车、黑科技现身