STM32定时器中断

定时器可以对输入的时钟进行计数,并在计数值达到设定值时发出中断

定时器就是一个计数器

预分频器:对系统时钟进行分频得到定时器时钟频率

自动重装在值:计数多少个进入中断

基本定时器两个,tim6和7,挂载在apb1

通用定时器四个:tim2、3、4和5,挂载在apb1

高级定时器两个:tim1和8,挂载在apb2

PSC预分频器,把系统时钟ck_psc进行分频得到ck_cnt时钟给cnt计数器

cnt计数器:计时增加或者减少

自动重装载值:上限值

基本定时器:内部时钟一般72mhz=72000000hz

通用定时器:内部时钟或者外部时钟都可以

溢出时间就是溢出频率的倒数

定时器中断:

1、开启RCC时钟

2、选择时钟源:内部或者外部

3、配置时基单元PSC预分频器、CNT计数器、ARR自动重装载值

4、配置中断

5、配置NVIC

 

  1. 开始时钟,要使用APB1外设时钟

2、选择时基单元

其中Intelernalclockconfig配置tim2选择内部时钟,一般默认就是内部时钟可以不设置

Tim2使用内部时钟,可以不调用,默认内部时钟

3配置时基单元

TIMCK_DIV1选择不分频

TIM_CounterMode_up向上计数

period:周期就是ARR自动重装器的值

prescaler:预分频器的值

repetitioncounter重复计数器的值

setcount和getcount获取计数器CNT的值

定时频率=ck_psc/(psc+1)/(arr+1)

时间频率的倒数

定时1s就是1hz,1s=0.001ms,1/1hz=1s

ck_psc=72000000hz

psc+1=7200

arr+1=1000

定时器频率=72000000/7200/10000=1

对72000000进行7200分频就是10000=10khz

在10的频率下计数10000个数,就是1s

4、使能定时器中断

使能中断后配置NVIC:

5、nvic配置

6、启动定时器

tim_cmd(timx,enable)

配置完成后,1s进一次中断,可以再中断中进行想要的操作。

在开启中断前面调用一下,手动把中断标志位清除一下。

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

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

相关文章

《Python 网络爬虫简易速速上手小册》第6章:Python 爬虫的优化策略(2024 最新版)

文章目录 6.1 提高爬虫的效率6.1.1 重点基础知识讲解6.1.2 重点案例:使用 asyncio 和 aiohttp 实现异步爬虫6.1.3 拓展案例 1:利用 Scrapy 的并发特性6.1.4 拓展案例 2:使用缓存来避免重复请求 6.2 处理大规模数据爬取6.2.1 重点基础知识讲解…

ES6中新增Array.of()函数的用法详解

new Array()方法 ES6为Array增加了of函数用一种明确的含义将一个或多个值转换成数组。因为用new Array()构造数组的时候,是有二意性的。 构造时,传一个参数,实际上是指定数组的长度,表示生成多大的数组。 构造时,传…

QT6调用音频输入输出(超详细)

目录 一、QT6音频调用与QT5的区别 1.QAudioSource代替QAudioInput类 2.QAudioSink代替QAudioOutput类 二、音频操作中Push和Pull的区别 三、依托于Websocket实现实时对讲机 1.AudioIputDevices类 2.AudioOutputDevices类 3.实现的AudioHandler类完整内容 本人实际是要完…

2024机械工程师面试题

1.常用的机械画图软件有哪些 SolidWorks、Pro/e、CATIA、UG、Creo、CAD、inventor。CAXA电子图板. 2.第一视角是___,第三视角是___; 只要区别是:物体所处的位置不同。一般中国都使用第一视角的。 3.气缸属于_____执行元件,电磁…

微信小程序编译出现 project.config.json 文件内容错误

问题描述: 更新微信开发工具后,使用微信开发工具编译时出现project.config.json 文件内容错误。 原因:当前使用的微信开发工具非稳定版本。 解决方法: 在 manifest.json中加入以下代码: "mp-weixin" : …

ubuntu 系统切换root用户

文章目录 切换命令如下sudo 命令sudo -i 命令如果想一直使用root权限,要通过su切换到root用户 ubuntu镜像系统,默认分配的是ubuntu账号,但是我习惯用你root,因为有些命令在ubuntu账号上运行不了,下面来看下如何在 ubun…

Scrapy:Python中强大的网络爬虫框架

Scrapy:Python中强大的网络爬虫框架 在当今信息爆炸的时代,从互联网上获取数据已经成为许多应用程序的核心需求。Scrapy是一款基于Python的强大网络爬虫框架,它提供了一种灵活且高效的方式来提取、处理和存储互联网上的数据。本文将介绍Scrap…

【Django开发】美多商城项目第3篇:用户注册和图片验证码开发(附代码,文档已分享)

本系列文章md笔记(已分享)主要讨论django商城项目开发相关知识。本项目利用Django框架开发一套前后端不分离的商城项目(4.0版本)含代码和文档。功能包括前后端不分离,方便SEO。采用Django Jinja2模板引擎 Vue.js实现…

如何使用linux inotifywait inotifywatch对文件增删修改进行监测和实现数据同步

一、概述 在Linux操作系统中,inotify是一个功能强大的工具,可用于实现文件系统的数据同步,这里介绍inotifywait和inotifywatch. inotifywait:它可以监视文件和目录的变化,并在事件发生时触发相应的操作(命令用于阻塞地等待并显示文件系统事件); …

小白水平理解面试经典题目LeetCode 21. Merge Two Sorted Lists【Linked List类】

21. 将两个有序列表融合 Linked List 数据结构也在面试中经常出现,作为很好处理客户信息存储的结构很方便,也是重点必会项目之一,看看我们如何教懂白月光,成功邀约看电影吧。 小白渣翻译 你将获得两个排序链表 list1 和 list2 …

ElementUI鼠标拖动没列宽度

其实 element ui 表格Table有提供给我们一个resizable属性 按官方文档上描述 它就是控制是否允许拖拽表格列大小的属性 而且 它的默认值就是 true 但是依旧很多人会反应拖拽不了 首先 表格要有边框 如果没有变宽 确实是拖拽不了 给 el-table加上 border属性 运行结果如下 但…

【大厂AI课学习笔记】1.5 AI技术领域(2)语音识别

今天来梳理语音识别相关的关键技术和发展脉络。 语音识别:定义、关键技术、技术发展、应用场景与商业化成功 一、语音识别的定义 语音识别,也称为自动语音识别(ASR),是指将人类的语音转换为机器可读的文本或命令的技…

2024/02/03

目录 进程间通信的7种方式,总结出他们的优点 1. 内核提供的原始通信方式有三种 1.1 无名管道 1.2 有名管道 1.3 信号 2. System V提供了三种通信方式 2.1 消息队列 2.2 共享内存 3.1 信号量(信号灯集) 3. 套接字通信:so…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之MenuItem组件

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之MenuItem组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、MenuItem组件 TextClock组件通过文本将当前系统时间显示在设备上。支持不同时…

详解洛谷P2912 [USACO08OCT] Pasture Walking G(牧场行走)(lca模板题)

题目 思路 一道模板题&#xff0c;没啥好说的&#xff0c;直接见代码 代码 #include <bits/stdc.h> using namespace std; int n,q,a,to[100001][22],b,deep[100001],c,t[1000001]; struct ff {int id,len; }; vector<ff> vec[100001]; void dfs(int x,int fa,i…

C#实现坐标系转换

已知坐标系的向量线段AB&#xff0c;旋转指定角度后平移到达坐标AB 获取旋转角度以及新的其他坐标转换。 新建窗体应用程序CoordinateTransDemo&#xff0c;将默认的Form1重命名为FormCoordinateTrans&#xff0c;窗体设计如图&#xff1a; 窗体设计代码如下&#xff1a; 部分…

C++ 之LeetCode刷题记录(二十八)

&#x1f604;&#x1f60a;&#x1f606;&#x1f603;&#x1f604;&#x1f60a;&#x1f606;&#x1f603; 开始cpp刷题之旅。 目标&#xff1a;执行用时击败90%以上使用 C 的用户。 144. 二叉树的前序遍历 给你二叉树的根节点 root &#xff0c;返回它节点值的 前序 遍…

Facebook群控:利用IP代理提高聊单效率

在当今社交媒体竞争激烈的环境中&#xff0c;Facebook已经成为广告营销和推广的重要平台&#xff0c;为了更好地利用Facebook进行推广活动&#xff0c;群控技术应运而生。 本文将深入探讨Facebook群控的定义、作用以及如何利用IP代理来提升群控效率&#xff0c;为你提供全面的…

IdleHandler的简单认识

IdleHandler 是 Android 中的一个机制&#xff0c;用于在应用程序主线程空闲的时候执行一些额外的任务。主线程的空闲时间通常是在处理完当前的 UI 事件和消息队列后&#xff0c;等待下一个事件到来之前的时间段。 IdleHandler 适用于一些不紧急、不影响用户体验的后台任务。当…

Adobe Camera Raw for Mac v16.1.0中文激活版

Adobe Camera Raw for Mac是一款强大的RAW格式图像编辑工具&#xff0c;它能够处理和编辑来自各种数码相机的原始图像。以下是关于Adobe Camera Raw for Mac的一些主要特点和功能&#xff1a; 软件下载&#xff1a;Adobe Camera Raw for Mac v16.1.0中文激活版 RAW格式支持&…