STM32F103学习笔记(5.0)——定时器TIM
目录
定时器的作用
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相关推荐
- STM32F103学习笔记(5)——数码管驱动TM1650使用
一.简介 TM1650 是一种带键盘扫描接口的 LED(发光二极管显示器)驱动控制专用电路.内部集成有 MCU 输入输出控制数字接口.数据锁存器.LED 驱动.键盘扫描.辉度调节等电路.TM1650 ...
- STM32F103学习笔记四 时钟系统
STM32F103学习笔记四 时钟系统 本文简述了自己学习时钟系统的一些框架,参照风水月 1. 单片机中时钟系统的理解 1.1 概述 时钟是单片机的脉搏,是单片机的驱动源 用任何一个外设都必须打开相应 ...
- STM32F103学习笔记(2)——收音机模块TEA5767使用
一.简介 TEA5767是由菲利普公司推出的一款低功耗立体声收音机接收器芯片.频率范围从76-108MHz自动数字调谐.高灵敏度,高稳定性,低噪音,收音模块.一片低功耗电调谐调频立体声收音机电路,其内 ...
- RK3399学习笔记 1.0.3---python环境 Firefly Core-3399pro-jd4 Win10上RKNN工具安装
RK3399学习笔记 1.0.3---python环境 Firefly Core-3399pro-jd4 Win10上RKNN工具安装 读取模型各层 1,最好在Conda下新建一个虚拟环境进行安装. ...
- Python学习笔记 1.0 基础内容篇章
Python学习笔记 1.0 基础内容篇章 注释 变量 一.定义变量 二.使用变量 bug和debug bug: Debug工具: 数据类型 认识数据类型 在定义数据类型时发生的错误: 数据类型的补表 ...
- 数据可视化清新版【chart.js】学习笔记8.0—极地图(Polar Area)
Polar Area--(极地图) 极地面积图类似于饼图,但每个线段具有相同的角度 - 线段的半径因值而异.当我们想要显示类似于饼图的比较数据,同时也要显示上下文的值的范围时通常使用这种类型的图表. ...
- STM32F103学习笔记(3.0)——中断
目录 中断定义 中断常见使用情景 1.外部中断EXTI 2.外设中断 优先级 1.优先级的规则: 2.中断向量表: NVIC 1.NVIC框图 2.配置NVIC代码 中断定义 中断装置和中断处理程序统 ...
- STM32学习笔记(3) TIM基本定时器
目录 1.基本定时器 2.基本定时器TIM的工作原理 2.1范例:定时1ms的计算 3.程序流程: 3.1配置时基初始化结构体 3.1.1时钟线的选择 3.1.2开启定时器更新中断 3.1.3TIM_ ...
- 基于STM32G431嵌入式学习笔记——七、定时器定时
一.题目引入 上述为第13届蓝桥杯省赛节选内容,为了研究定时器的机理并独立书写计时函数,上述内容简化为以下要求: ①按下B4按键,LD1点亮5s后熄灭 ②按下B3按键,LD2以0.1秒为间隔切换亮灭状 ...
- 嵌入式Linux学习笔记(0)基础命令。——Arvin
学习记录: 到今天为止ARM裸机开发学习进程:1.2.1-1.2.14 预科班知识Linux介绍学习进程:0.2.1-0.2.6 学习内容笔记: 学习了Linux的开发方式的优劣介绍 学习了常用文件夹 ...
最新文章
- redis 安装启动及设置密码windows
- c语言循环并行处理,C语言设计并行处理
- java面向对象程序设计董小圆_2017-2018-2 20165325 实验三《Java面向对象程序设计》实验报告...
- 2012.12.26日学习笔记
- webpack轻松入门教程
- yii2通过url访问类中的方法_行为型设计模式 访问者模式
- ubuntu 16.04下切换python版本小结
- Mr.J--Java异常处理总结
- test函数java,js中test()函数在正则中使用
- 基于深度卷积神经网络的玉米病害实时识别检测系统
- redux-chunk中间件的安装和使用-(二)
- linux kali局域网远程桌面,kali使用rdesktop连接Windows远程桌面
- Win10PE纯净版制作过程
- 编译原理 实验2《预测分析法设计与实现》
- 2.过滤函数-filter/filter-out
- c++ 输出正三角形图形
- 《富爸爸穷爸爸 》 读书笔记
- python+opencv代码给证件照换底色(别再用PS啦)(转载)
- 毕业设计-基于SpringBoot幼儿园管理系统
- nuxt启动报错: Error: getaddrinfo ENOTFOUND 0