05- 定时器

news2024/11/22 10:07:55

定时器

  • 定时器
    • 5.1 独立看门狗定时器
      • 独立看门狗的配置步骤:
      • 看门狗计时时间的计算:
    • 5.2 窗口看门狗
      • 看门狗有什么作用?
      • 窗口看门狗超时时间计算:
      • 窗口看门狗的配置过程:
    • 5.3 通用定时器
      • 三种定时器:
  • 计数器的时钟频率与内部时钟的关系:
    • 示例
      • 例1 定时器中断
        • 定时器中断实现步骤:
        • 定时器参数计算:
      • 例2 PWM输出控制LED渐明渐暗
        • 工作过程:
        • PWM模式1和PWM模式2的区别:
        • PWM模式:
        • PWM输出的配置步骤:
        • 示例程序:
      • 例 3 引脚电平输入捕获
      • 输入捕获的一般配置步骤:
        • 代码:

定时器

5.1 独立看门狗定时器

描述:
在这里插入图片描述
独立看门狗的寄存器:
在这里插入图片描述

独立看门狗的配置步骤:

在这里插入图片描述

看门狗计时时间的计算:

在这里插入图片描述
使用的库函数:
在这里插入图片描述
在1秒内按键喂狗,否则复位。初始化时LED为灭,while中点亮,如果复位则灯闪烁,喂狗后灯一直亮。
Iwdog.h文件(条件编译在预编译时实现)
在这里插入图片描述
Iwdog.c文件
在这里插入图片描述
主函数:
在这里插入图片描述

5.2 窗口看门狗

计数值递减,B段是窗口,
<1>当计数值递减在A段时喂狗,会产生复位信号;
<2>当计数值由0x40h减1到了0X3Fh时(T6位变为0)还没有喂狗,会产生喂狗信号。
在这里插入图片描述
在这里插入图片描述

看门狗有什么作用?

在这里插入图片描述

窗口看门狗超时时间计算:

在这里插入图片描述

窗口看门狗的配置过程:

在这里插入图片描述
设置窗口值时,窗口值是7位,所以存在8位值->7位的变换,使用&运算。(黄色标记部分)
在这里插入图片描述
主函数:
在这里插入图片描述

5.3 通用定时器

三种定时器:

在这里插入图片描述
定时器的时钟来源:
在这里插入图片描述
定时器的时钟默认选择的是系统内部时钟,内部时钟的选择:
在这里插入图片描述

计数器的时钟频率与内部时钟的关系:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
预分频寄存器:
在这里插入图片描述
具体的定时器结构和工作过程可以参看《stm32中文参考手册》

示例

例1 定时器中断

要求:每500ms中断一次,中断服务函数控制LED状态取反,实现LED灯闪烁。
定时器参数初始化的库函数:
在这里插入图片描述

定时器中断实现步骤:

在这里插入图片描述

定时器参数计算:

在这里插入图片描述
根据要求,Tout=500ms,由于系统的时钟频率为72MHz,如果设置APB1的频率是AHB的2分频,即36MHz,此时就要考虑APB1的分频系数了,
<1>分频系数为1,即不分频,则输出的CK_PSC=36MHZ,即Tclk=36MHz;
<2>分频系数为2或其他值,则CK_PSC=APB12,即,Tclk=APB12。
由于系统函数程序中默认的是APB1=36MHz,次处设置APB1的分频系数是2,所以根据前面的介绍得出,Tclk=72MHz。ARR和PSC的值只要不超出16位二进制数转十进制数的值的范围,合理即可,当然方便理解和计算最好。
timer.c文件
定时器初始化函数
在这里插入图片描述
定时器中断服务函数:
在这里插入图片描述
主函数:
在这里插入图片描述

例2 PWM输出控制LED渐明渐暗

在这里插入图片描述
PWM输出是通过定时器TIMER中的设定值与计时值比较大小输出不同的电平。

工作过程:

在这里插入图片描述

PWM模式1和PWM模式2的区别:

在这里插入图片描述

PWM模式:

在这里插入图片描述
自动重转载寄存器:
在这里插入图片描述
PWM输出的库函数:
在这里插入图片描述
在这里插入图片描述

PWM输出的配置步骤:

在这里插入图片描述

示例程序:

在这里插入图片描述
在这里插入图片描述
如果使用的是高级定时器的话,必须使能这个:
在这里插入图片描述

例 3 引脚电平输入捕获

以通道1为例,介绍输入捕获的工作原理:
在这里插入图片描述
由上面的框图,分解介绍
<1>设置输入捕获滤波器:
在这里插入图片描述
TIMx_CR1->CKD:
在这里插入图片描述

捕获/比较模式寄存器TIMx_CCMR->IC1F设置采样的频率:
在这里插入图片描述
<2>设置输入捕获极性:
在这里插入图片描述
<3>设置输入捕获映射通道(通道1为例):
在这里插入图片描述
上面说到的映射到TI1和TI2上,如下图所示:
在这里插入图片描述
<4>设置输入捕获分频寄存器:
在这里插入图片描述
<5>捕捉到有效信号后使能中断
在这里插入图片描述
输入捕获相关库函数:
在这里插入图片描述
通道极性设置独立函数:
在这里插入图片描述
获取通道捕获值:
在这里插入图片描述

输入捕获的一般配置步骤:

在这里插入图片描述
使用PA0和TIM5的通道1
在这里插入图片描述
在这里插入图片描述

代码:

将结构体定义在了程序外,其它初始化与之前的类似。
在这里插入图片描述
在这里插入图片描述
定义了两个变量记录输入
在这里插入图片描述
中断服务函数:
在这里插入图片描述
主函数:
在这里插入图片描述

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

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

相关文章

使用Jmeter进行压力测试你所不知道内幕

在网络很多网友反馈Jmeter的测试结果不准确&#xff0c;下面我们主要聊一下不准确的原因。 Jmeter 是ASF的一款开源免费软件 &#xff0c;在国内被很多中小公司当作性能测试工具广泛使用。Apache软件基金会&#xff08;ASF&#xff09;是一家总部位于美国的非营利性慈善组织。…

Binder机制原理解析

前言 我们都知道Android应用程序由Activity、Service、Broadcast Receiver、Content Provider四大组件构成的,他们可能运行在不同进程中&#xff0c;还有Android系统中还有各种服务&#xff0c;例如Actiivty管理服务ActivityManagerService、电源管理服务PowerManagerService、…

半导体退火那些事(3)

4.半导体退火设备 双腔全自动兼容6-8寸快速退火炉RTP 产地:中国 型号: S803 特点: 室温到1250C&#xff0c;应用于SiC&#xff0c;GaN等第三代半导体领域 简介 (Description) S803系列自动快速退火炉&#xff0c;内置Robot可以自动取放片&#xff0c;适用于最大8英寸 (单片200m…

【MySQL系列】-回表、覆盖索引真的懂吗

【MySQL系列】-回表、覆盖索引真的懂吗 文章目录 【MySQL系列】-回表、覆盖索引真的懂吗一、MYSQL索引结构1.1 索引的概念1.2 索引的特点1.3 索引的优点1.4 索引的缺点 二、B-Tree与BTree2.1 B-Tree2.2 BTree2.3 B-Tree 与BTree树的区别2.4 那么为什么InnoDB的主键最好要搞成有…

【数据结构OJ题】链表的回文结构

原题链接&#xff1a;https://www.nowcoder.com/practice/d281619e4b3e4a60a2cc66ea32855bfa?tpId49&&tqId29370&rp1&ru/activity/oj&qru/ta/2016test/question-ranking 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 在做这道…

EMO实战:使用EMO实现图像分类任务(一)

文章目录 摘要安装包安装timm安装 grad-cam安装einops 数据增强Cutout和MixupEMA项目结构计算mean和std生成数据集 摘要 论文翻译&#xff1a;https://blog.csdn.net/m0_47867638/article/details/132034098?spm1001.2014.3001.5501 官方源码&#xff1a;https://github.com/…

uniapp项目APP云打包步骤

1.打开hbuilder工具&#xff0c;选择uniapp项目&#xff0c;从上方工具中选择发行 2.证书的生成&#xff0c;点击上面的如何生成证书的网址&#xff0c;按照步骤进行生成&#xff1a; 3.结果&#xff0c;点击打开所在目录&#xff0c;点击直接安装到手机&#xff0c;前提是手机…

excel日期函数篇1

1、DAY(serial_number)&#xff1a;返回序列数表示的某月的天数 在括号内给出一个时间对象或引用一个时间对象&#xff08;年月日&#xff09;&#xff0c;返回多少日 下面结果都为20 2、MONTH(serial_number)&#xff1a;返回序列数表示的某年的月份 在括号内给出一个时间对…

重新认识小米

被镁光灯聚焦的企业&#xff0c;总是会被贴上各种标签。 8月14日&#xff0c;小米科技创始人雷军以“成长”为主题的年度演讲&#xff0c;刷遍社交网络。提到小米&#xff0c;你首先想到什么&#xff1f;手机发烧友、极致性价比&#xff0c;还是最年轻的500强&#xff1f; 这…

手撕单链表

目录 链表的概念和结构 单链表的实现 申请新结点 打印 尾插 头插 尾删 头删 ​编辑 查找 在pos位置前插入元素 在pos位置后插入元素 删除pos位置的元素 删除pos位置之后的位置的元素​编辑 完整代码 SListNode.h SListNode.c 链表的概念和结构 链表是一种物理存储…

VS2022如何查看类成员都在哪里被调用了(VS如何打开Call Hierarchy视图)

文章目录 打开Call Hierarchy视图查看成员的调用 打开Call Hierarchy视图 单击菜单栏的“视图” > “调用层次结构”&#xff0c;即可打卡Call Hierarchy视图。 查看成员的调用 在代码编辑窗口&#xff0c;右键单击想要查看的类成员&#xff0c;然后选择“查看调用层次结…

2003-2021年全国30省市数字关注度数据

1、时间&#xff1a;2003-2021年 2、来源&#xff1a;政府工作报告 3、范围&#xff1a;30省市 不含西藏、其中2004年吉林缺失 4、指标&#xff1a;省份、年份、一级指标、二级指标、关键词、关键词词频、全文词频 5、词频&#xff1a;选取大数据、云计算、区块链、人工智能…

解决一直提示No module named “Crypto” 解决方案

今天跑脚本发现一直提示装Crypto包 已经装好了情况下还是这样&#xff1a; 解决方法&#xff1a; pip uninstall crypto pycryptodome pip install pycryptodome pycrypto和crypto是同一个库&#xff0c;crypto在 python 中又被称为pycrypto&#xff0c;它是一个第三方库&…

归并排序(C++ mpi 并行实现)

文章目录 主要思路1. 串行归并排序2. 进程的分发3. 对接收到的子数组进行排序4. 合并数组5.输出排序后的数组6.进程分发部分的优化7.完整代码 主要思路 我们首先实现串行的归并排序&#xff1b;实现进程的分发&#xff1b;排序其中的每个子部分&#xff1b;进程的合并通信&…

宝藏级画图工具-drawio

今天推荐一款非常好用的免费开源画图工具drawio. Drawio即可以下载安装到本地&#xff0c;也可以在线编辑&#xff0c;在线编辑网址为 https://app.diagrams.net/。 本地版下载地址为https://github.com/jgraph/drawio-desktop/releases 1、支持各类图形 Drawio可以非常便捷…

Docker服务编排Docker Compose介绍

1.服务编排概念 2.Docker Compose介绍 3.Docker Compose安装及使用

【【STM32----I2C通信协议】】

STM32----I2C通信协议 我们会发现I2C有两根通信线&#xff1a; SCL和SDA 同步 半双工 带数据应答 支持总线挂载多设备&#xff08;一主多从&#xff0c;多主多从&#xff09; 硬件电路 所有I2C设备的SCL连在一起&#xff0c;SDA连在一起 设备的SCL和SDA均要配置成开漏输出模式 …

MySQL— 基础语法大全及操作演示!!!(下)

MySQL—— 基础语法大全及操作演示&#xff08;下&#xff09;—— 持续更新 三、函数3.1 字符串函数3.2 数值函数3.3 日期函数3.4 流程函数 四、约束4.1 概述4.2 约束演示4.3 外键约束4.3.1 介绍4.3.2 语法4.3.3 删除/更新行为 五、多表查询5.1 多表关系5.1.1 一对多5.1.2 多对…

hdu8-Congruences(中国剩余定理)

Problem - 7363 (hdu.edu.cn) 参考&#xff1a;2023杭电暑假多校8 题解 3 5 7 10 | JorbanS_JorbanS的博客-CSDN博客 题解&#xff1a;&#xff08;中国剩余定理 增量法&#xff09; 注意验证和特判&#xff0c;此题中 pi 两两互质&#xff0c;可用CRT和增量法&#xff0c;当…

ipkvm之RK3568高温测试

1. 简介 KVM高温测试描述&#xff1a; 将KVM主板放入50℃的温箱中放置4个小时。四个小时后记录VGA小板的温度以及SOC温度和外壳温度。 测试仪器&#xff1a; 两块KVM主板&#xff0c;温度记录仪&#xff0c;两个串口&#xff0c;笔记本&#xff0c;电源 KVM主板上电和串口 …