6 计时器(一)

计时器

在这里插入图片描述

6.1 TIM

TIM简介

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

补充:

在 STM32 系列 MCU 的定时器中,时基单元是指由 16 位计数器、预分频器和自动重装寄存器三部分组成的基本计时单元。具体说明如下:

1. 16 位计数器:它是定时器的核心部分,用于对时间进行计数。计数器的计数范围是 0 到 65535,当计数器的值达到最大值时,就会重新从 0 开始计数。

2. 预分频器:它是用来分频计数器时钟信号的一个寄存器,可以将输入时钟信号分频后输出。预分频器的输出作为计数器的输入时钟信号,用于控制计数器的计数频率。预分频器的分频系数需要根据实际应用需求进行设置,可以使计数器的计数频率变得更低,从而实现更长的定时时间。

3. 自动重装寄存器:它是一个可编程的寄存器,用于对计数器的最大计数范围进行设置。当计数器的值达到自动重装寄存器中设置的值时,计数器的值就会被自动重置为 0,重新开始计数。因此,自动重装寄存器的值也可以决定定时器的时间周期,通过适当设置自动重装寄存器的值,可以实现所需的定时时间。

综上所述,时基单元是 STM32 系列 MCU 定时器中的核心组成部分,它通过计数器、预分频器和自动重装寄存器的协同工作,实现定时器的计时和控制。通过合理选择和配置这三个部分的参数,可以实现不同的定时要求。

定时器类型

类型编号总线功能
高级定时器TIM1、TIM8APB2拥有通用定时器全部功能,并额外具有重复计数器、死区生成、互补输出、刹车输入等功能
通用定时器TIM2、TIM3、TIM4、TIM5APB1拥有基本定时器全部功能,并额外具有内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等功能
基本定时器TIM6、TIM7APB1拥有定时中断、主模式触发DAC的功能

•STM32F103C8T6定时器资源:TIM1、TIM2、TIM3、TIM4

•高级定时器可用以为三相无刷电机设计

基本定时器

在这里插入图片描述

基本定时主模式触发 DAC 的功能是指使用定时器的基本定时功能来触发 DAC 的主模式输出,从而定期输出模拟信号。能让内部硬件在不受程序的控制下实现自动运行

通用定时器
在这里插入图片描述

1)三输入异或门:

三输入异或门(Three-input Exclusive OR Gate)是一种具有三个输入端的逻辑门,它的输出与三个输入端中恰好一位是高电平(1)的输入端有关,如果这样的输入只有一个,则输出为高电平(1),否则输出为低电平(0)。它的真值表如下:

ABCA ⊕ B ⊕ C
0000
0011
0101
0110
1001
1010
1100
1111

2)输入滤波器和边沿检测器

输入滤波器用于去除输入信号中的毛刺和噪声,保留有效信号以供后续处理。常见的输入滤波器包括低通滤波器、带通滤波器和高通滤波器等。

边沿检测器则用于检测输入信号的上升沿和下降沿,以便触发相应的处理程序。可以将边沿检测器看作是一个逻辑门,当输入信号的电平变化到达一定阈值时,输出逻辑 1,否则输出逻辑 0。

在数字电路中,输入滤波器和边沿检测器通常用于处理数字输入设备如按钮、开关、传感器等的信号。输入滤波器可以用于去除由信号线干扰、电路自身噪声等原因造成的信号抖动,以减少系统的误触发。而边沿检测器则可以用于检测按钮的短按、长按等事件,或者检测传感器输入信号的变化来触发相应的操作。 

在嵌入式系统中,输入滤波器和边沿检测器通常可以通过定时器或外部中断实现。例如,可以通过设置定时器的计数频率和计数周期,来周期性地对输入信号进行采样和滤波。而边沿检测器则可以通过配置外部中断来实现对输入信号的检测和触发相应的中断处理程序。

高级定时器
在这里插入图片描述

定时中断基本结构

在这里插入图片描述

预分频器时序
在这里插入图片描述

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

计数器时序
在这里插入图片描述

•计数器溢出频率:CK_CNT_OV = CK_CNT / (ARR + 1) = CK_PSC / (PSC + 1) / (ARR + 1)

T c y c l e = ( P S C + 1 ) × ( A R R + 1 ) 72 M H z T_{cycle} = \frac{(PSC + 1) \times (ARR + 1)}{72MHz} Tcycle=72MHz(PSC+1)×(ARR+1)

1)计数器无预装时序

在这里插入图片描述

2)计数器有预装时序

在这里插入图片描述

RCC时钟树

RCC(Reset and Clock Control)是STM32中的时钟控制模块,是实现芯片内部时钟分配和控制的核心组成部分。在STM32中,各个模块的时钟都是由RCC模块产生和分配的,SystemInit就是用来配置时钟树的。
在这里插入图片描述

外部晶振相对于内部时钟(如HSI)来说,稳定性更高,精度更高。因此,对于那些需要高精度时钟的应用,我们通常会使用外部晶振。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何在现实场景中随心放置AR虚拟对象?

随着AR的发展和电子设备的普及,人们在生活中使用AR技术的门槛降低,比如对于不方便测量的物体使用AR测量,方便又准确;遇到陌生的路段使用AR导航,清楚又便捷;网购时拿不准的物品使用AR购物,体验更…

Spring-aop面向切面

1、理解必要的专业术语 先看看上面图,这是我的个人理解。(画的丑,主打真实) 1)Advice,通知/增强:类方法中提出来的共性功能(大白话就是提出来的重复代码) 2)Pointcut,切入点/切点&#…

centos7修改ip

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

uniapp国际化配置

1、创建资源文件 创建一个locale文件夹,新增index.js,en.json,zh-hans.json 2.配置locale文件夹中的index.js文件 import Vue from vue import VueI18n from vue-i18n// v8.x import en from ./en.json import zhHans from ./zh-Hans.json import zhHant from .…

Redis大key问题

Redis大key问题 什么是big key? bigKey的危害: 大key不仅仅是占用内存而已,如果是仅仅内存的问题 那么扩大内存就好了。禁止大key是主要是因为你操作redis,比如说读/写等操作redis的时候 会有io操作,大key会导致io操作…

【K8S】k8s中secret使用方法

secret可以加密用户名和密码文件,将其打包成一个secret并在API服务器上创建对象 echo -n admin > ./username.txt echo -n xvagaxx > ./password.txt将username.txt和password.txt打包成secret kubectl create secret generic db-user-pass \--from-file./u…

【Mysql系列】——详细剖析数据库中的存储引擎

【Mysql系列】——详细剖析数据库中的存储引擎😎前言🙌存储引擎什么是存储引擎?Mysql的体系结构:Mysql的体系结构分为四层:连接层服务层引擎层存储层存储引擎的查看存储引擎的指定存储引擎的特点InnoDB介绍InnoDB特点I…

客户反馈终极指南

客户反馈包括客户在交易后分享的有关产品或服务体验的所有信息、问题和输入。 客户反馈可帮助公司改善他们提供的客户体验,并可以在企业内产生积极的变化和增长。无论是正面的还是负面的,客户反馈都有助于调整您的产品和服务,以满足并超越客户…

基于vivado(语言Verilog)的FPGA学习(5)——跨时钟处理

基于vivado(语言Verilog)的FPGA学习(5)——跨时钟处理 1. 为什么要解决跨时钟处理问题 慢时钟到快时钟一般都不需要处理,关键需要解决从快时钟到慢时钟的问题,因为可能会漏信号或者失真,比如&…

Python零基础自学

很多零基础想做程序员的同学,最开始接触的基本上都是 Python 作为常年霸榜的 “最好上手的编程语言” ——Python,深受互联网大厂的喜爱。 而很多小伙伴反应,在刚开始学Python时遇到不少问题: 比如找不到学习资源,不…

Linux系统centos7关闭防火墙命令

CentOS 7使用的防火墙是firewalld,要关闭防火墙可以使用以下命令: 1. 停止firewalld服务: systemctl stop firewalld 2. 禁止firewalld服务开机启动: systemctl disable firewalld 3. 查看firewalld服务状态: sys…

java 线程池

一.简单的线程池设计: 线程池的执行示意图: 二. 线程池的核心参数: 三.线程池的处理流程: 四.线程池的阻塞队列: 1.基于数组的有界阻塞队列 2.基于链表的有界阻塞队列 3.基于链表的无界阻塞队列 4.同步移交阻塞队列…

2003-2019年各省专利申请和授权量数据/2003-2019年31省专利申请和授权量数据

2003-2019年各省专利申请和授权量数据/2003-2019年31省专利申请量和授权量数据 2003-2019年各省专利申请和授权量数据/2003-2019年31省专利申请和授权量数据 1、时间:2003-2019年 2、来源:国家知识产权专利数据库 3、指标:专利申请数、发…

数据结构和算法(一):复杂度、数组、链表、栈、队列

从广义上来讲:数据结构就是一组数据的存储结构 , 算法就是操作数据的方法 数据结构是为算法服务的,算法是要作用在特定的数据结构上的。 10个最常用的数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树 10…

办公协作效率想提质增效,可借助开源大数据工具!

在信息爆炸式发展的今天,提升办公协作效率,让各部门的信息有效互通起来,做好数据管理,已经成为众企业提升竞争力的方式方法。那么,如果想要提升办公效率,就需要了解开源大数据工具了。在数字化发展进程中&a…

《扬帆优配》西藏地震!美史上最严排放新规将出台,美股收涨

当地时间周四,美股遍及收高,科技股领涨。因耶稣受难日,美股4月7日(周五)休市,周四为美股本周最终一个买卖日,从本周状况来看,纳指与标普500指数均录得跌幅,别离跌1.1%和0…

回归预测 | MATLAB实现PSO-RF粒子群算法优化随机森林多输入单输出回归预测

回归预测 | MATLAB实现PSO-RF粒子群算法优化随机森林多输入单输出回归预测 目录回归预测 | MATLAB实现PSO-RF粒子群算法优化随机森林多输入单输出回归预测效果一览基本介绍程序设计参考资料效果一览 基本介绍 MATLAB实现PSO-RF粒子群算法优化随机森林多输入单输出回归预测 粒子…

第十四届蓝桥杯题解

声明:以下都无法确定代码的正确性,是赛时代码,希望大家见谅!思路可以参考,等后续可以评测之后再去修改博客内错误,也希望大家能够指正错误! 试题A:日期统计 分析:这道题…

45-Dockerfile-ARG/ENV指令

AGR/ENV指令前言ARG作用格式说明生效范围使用示例ENV作用格式说明使用环境变量使用示例ARG 和 ENV 的区别前言 本篇来学习下Dockerfile中的AGR/ENV指令 ARG 作用 定义一个可以在构建镜像时使用的变量 格式 ARG <name>[<default value>]说明 在执行 docker b…

【数据结构】AVL树

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《数据结构与算法》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; AVL树&#x1f332;AVL树&#x1f334;AVL树的插入&#x1f334;AVL树的旋转左单旋右单旋左…