stm32 TIM

一、TIM简介

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

        定时器最基本的功能就是定时触发中断。

        定时器就是一个计数器,当这个计数器的输入是一个准确可靠的基准时钟的时候。那它在对这个基准时钟进行计数的过程实际上就是计时的过程。在STM32中,定时器的基准时钟一般都是主频72MHz,如果对72MHz计72个数,是1MHz也就是1us 的时间;如果计72000个数,是1KHz也就是1ms的时间。

  • 计时器就是用来执行计数定时器的一个寄存器,每来一个时钟,计数器加1。
  • 预分频器可以对计数器的时钟进行分配,让这个计数更加灵活。
  • 自动重装寄存器就是计数的目标值,可以设置要计多少个时钟申请中断。

这三个寄存器构成了定时器最核心的部分,这一块电路称为时基单元。时基单元里的计数器、预分频器、自动重装寄存器都是16位的,2的16次方是65536,也就是如果预分频器设置最大,自动重装寄存器也设置最大,那定时器的最大定时时间就是59.65s,接近一分钟。STM32的定时器还支持级联的模式,也就是一个定时器的输出,当作另一个定时器的输入。这样加一起,最大定时时间就是59.65s×65536×65536,这个时间大概是八千多年。

二、STM32的三种定时器

        不同定时器连接的总线也不同,高级定时器连接的是性能更高的APB2总线,通用定时器和基本定时器连接的是APB1总线,在RCC开启时钟时要注意。

        基本定时器功能最少,只有基本的定时中断功能和一个主模式触发DAC的功能,所以基本定时器还可以和DAC联合使用。

        通用定时器拥有基本定时器的全部功能,也就是定时中断功能和主模式触发DAC的功能。并额外具有内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等功能。

        高级定时器最为复杂,拥有通用定时器的全部功能,并额外具有重复计数器、死区生成、互补输出、刹车输入等功能。这些功能主要是为了三相无刷电机的驱动设计的。

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

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

相关文章

扩展ACL命令

扩展ACL 语法:access-list access-list-number { permit | deny } protocol { source source-wildcard destination destination-wildcard } [ operator operan ] ------------------------------------------------------------------------------------------…

gitee代码路径大纲//test ok

tcp udp rtsp rtp tcp/ip zmq communication: 各种通信demo (gitee.com)

FFmpeg介绍

官方网站:http://www.ffmpeg.org/ 项目组成 libavformat 封装模块,封装了Protocol层和Demuxer、Muxer层,使得协议和格式对于开发者来说是透明的。FFmpeg能否支持一种封装格式的视频的封装与解封装,完全取决于这个库&#xff0c…

第一个php扩展开发的demo

cd /root/soft/php/php-5.2.6/ext ./ext_skel --extnameheiyeluren cd /root/soft/php/php-5.2.6/ext/heiyeluren vi config.m4 打开文件后去掉 dnl ,获得下面的信息: PHP_ARG_ENABLE(rot13, whether to enable heiyeluren support, [ --enable-heiyelu…

动态库与静态库

1. 库 是代码的二进制的封装形式 在其他的源代码或库中,可以直接调用库的,但是又看不到它 没有公开源代码 库的这种实现方法有利于模块化 而且只要接口合理 不影响库的使用的 sum.c sum.h int sum(int a,int b) { return ab; } xxx.c 需要使用…

LuatOS-SOC接口文档(air780E)--rtc - 实时时钟

rtc.set(tab) 设置时钟 参数 传入值类型 解释 table or int 时钟参数,见示例 返回值 返回值类型 解释 bool 成功返回true,否则返回nil或false 例子 rtc.set({year2021,mon8,day31,hour17,min8,sec43}) --目前只有Air101/Air103/Air105/EC618系列支持时间戳方式 rt…

QT中的 容器(container)-大全

一、介绍 Qt库提供了一套通用的基于模板的容器类&#xff0c;可以用这些类存储指定类型的项。比如&#xff0c;你需要一个大小可变的QString的数组&#xff0c;则使用QVector<QString>。 这些容器类比STL&#xff08;C标准模板库&#xff09;容器设计得更轻量、更安全并…

光伏电站开发流程

随着人们对可再生能源的关注度不断提高&#xff0c;光伏电站的开发流程也变得越来越重要。光伏电站是一种利用太阳能发电的设施&#xff0c;它可以有效地减少化石能源的消耗&#xff0c;同时也可以为环保事业做出贡献。 首先&#xff0c;要进行光伏电站的开发&#xff0c;需要选…

PWM 正玄波形 通过C语言生成

#include <stdio.h> #include <math.h> #include <stdint.h>#define SAMPLE_POINT_NUM (200) /* 需要生成的点的个数 */ #define SINE_MAX (255) /* sin 函数幅值 */ #define PI (3.14…

pytorch训练模型内存溢出

1、训练模型命令命令 如下所示是训练命名实体识别的命令&#xff0c;在win10系统下执行 activate pytorch cd F:\Python\github\ultralytics-main\submain\pytorch_bert_bilstm_crf_ner-main f: python main.py --bert_dir"../model_hub/chinese-bert-wwm-ext/" --…

TIME_WAIT状态TCP连接导致套接字无法重用实验

理论相关知识可以看一下《TIME_WAIT相关知识》。 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<unistd.h> #include<arpa/inet.h> #include<sys/socket.h> #include<errno.h> #include<syslog.h> #inc…

Echarts legend图例配置项 设置位置 显示隐藏

Echarts 官网完整配置项 https://echarts.apache.org/zh/option.html#legend 配置项 legend: { }设置图例为圆形 icon: circle,//设置图例为圆形设置图例位置 top: 20%//距离顶部百分之20//y:bottom 在底部显示设置图例 宽度 高度 itemWidth: 10,//设置图例宽度 itemHeight: …

Dubbo相关的问题

Dubbo 失败机制 Dubbo 是一个 RPC 框架&#xff0c;它为我们的应用提供了远程通信能力的封装&#xff0c;同时&#xff0c;Dubbo 在 RPC 通信的基础上&#xff0c;逐步在向一个生态在演进&#xff0c;它涵盖了服务注册、动态路由、容错、服务降级、负载均衡等能力&#xff0c;…

每日一练【移动零】

一、题目描述 283. 移动零 - 力扣&#xff08;LeetCode&#xff09; 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 二、题目解析 可以…

Python中调用VisualStudio创建的DLL库

1、创建DLL 打开VisualStudio2022&#xff0c;创建新项目 动态链接库-下一步 设置项目名称、项目位置、创建 单击头文件、添加、新建项 选择.h、设置名称、添加 同样的在源文件新建项&#xff0c;创建 代码&#xff1a; test.h #pragma once#ifdef BUILD_TEST #define API_S…

unity3d NPC自动寻路不移动

烘焙的路面不能有间隔&#xff0c;调整地面重新烘焙

数据结构(超详细讲解!!)第二十五节 树与森林

1.树的存储结构 和线性表一样&#xff0c;树可以用顺序和链式两种存储结构。 树的顺序存储结构适合树中结点比较“满”的情况。根据树的非线性结构特点&#xff0c;常用链式存储方式来表示树。树常用的存储方法有&#xff1a;双亲表示法、孩子表示法和孩子兄弟表…

【Linux进阶之路】进程间通信

文章目录 一、原理二、方式1.管道1.1匿名管道1.1.1通信原理1.1.2接口使用 1.2命名管道 2.共享内存2.1原理2.2接口使用 3.消息队列原理 4.信号量引入原理 总结 一、原理 进程间的通信是什么&#xff1f;解释&#xff1a; 简单理解就是&#xff0c;不同进程之间进行数据的输入输出…

18、Android 组件化

Android 组件化架构设计从原理到实战-CSDN博客 Android组件化架构解析总结_android 组件化架构_PalmerYang的博客-CSDN博客 Android组件化开发&#xff0c;从未如此简单 - 知乎

Typora+PicGo+Minio搭建博客图床

文章目录 TyporaPicGoMinio搭建博客图床前言什么是图床?为什么需要图床?准备工作一、Typora二、Picgo1. 下载Picgo2. 下载node.js3. 下载minio插件 三、服务器端配置1. 添加端口到安全组2. 使用Docker安装minio3. 配置minio image-20231127175530696四、minio插件配置五、Typ…