STM32-基本定时器

一、基本定时器的作用

  1. 定时
  2. 触发输出直接驱动DAC。

二、基本定时器的框图

在这里插入图片描述

以STM32F103系列为例,具体开发板请查看开发手册。

类别定时器总线位数计数方向预分频系数是否可以产生DMA捕获/比较通道互补输出
基本定时器TIM6 / TIM7APB116位向上1~65536可以0
通用定时器TIM2 /TIM3 /TIM4/ TIM5APB116位向上/向下/中央对齐1~65536可以4
高级定时器TIM1 /TIM8APB216位向上/向下/中央对齐1~65536可以4

三、基本定时器的寄存器

1. 控制寄存器-TIMx->CR1

在这里插入图片描述

位 0:CEN 计数器使能 (Counter enable)

    0:禁止计数器1:使能计数器

位 1:UDIS 更新禁止 (Update disable)(没有使用中断可以不设置)

   0:使能 更新 (UEV),更新事件可通过以下事件之一生成:(1)计数器上溢(2)将 UG 位置 11:禁止 更新UEV。定时到达后不会生成更新事件。

位 2: URS 选择更新请求源 (Update request source)

    0:如果使能了中断或DMA,以下任一事件可以产生一个更新中断或DMA请求。此类事件包括:(1)计数器上溢;(2)将 UG 位置 11:只有计数器上溢才会生成更新中断或DMA请求。

位 3: OPM 单脉冲模式 (One-pulse mode)

    0:计数器在发生更新事件时不会停止计数1:计数器在发生下一更新事件时停止计数(将 CEN 位清零)。

位 7: ARPE 自动重载预装载使能 (Auto-reload preload enable)

    0: TIMx_ARR 寄存器不进行缓冲(影子寄存器无效)。1: TIMx_ARR 寄存器进行缓冲(影子寄存器有效)。

2. 控制寄存器-TIMx->CR2(用于高级定时器,这里我们先不看。)

在这里插入图片描述

3.事件产生寄存器-TIMx->EGR

在这里插入图片描述
位 0: 产生更新事件(该位由软件设置,由硬件自动清除)

 0:无作用1:重新初始化定时器的计数器并产生对寄存器的更新。

4. DMA/中断使能寄存器-TIMx->DIER

在这里插入图片描述

位 8: 更新DMA请求

    0:禁止更新DMA请求。1:使能更新DMA请求。

位 0: 更新中断请求

   0:禁止更新中断。1:使能更新中断。

5. 状态寄存器(中断标志)-TIMx->SR

在这里插入图片描述

如果清除中断标志位需要软件清0。读取该寄存器的位0来判断是否发生中断。

位 0: 更新中断标志位

   0:没有发生中断(定的时间还没到)。1:发生了中断。如果发生中断,则该位由硬件置1。

6. 计数器-TIMx->CNT

在这里插入图片描述

位 [ 15:0 ]:用于计数,范围0~65535。一般不用设置。基本定时器默认为0开始。

7. 预分频器-TIMx->PSC

在这里插入图片描述

位 [ 15:0 ]: 设置预分频系数。

8. 自动重装载寄存器-TIMx->ARR

在这里插入图片描述
位 [ 15:0 ]: 设置重装载值。

四、实验

实验1. 查询方式:用定时器TIM6实现延时1s闪烁LED1灯。
实验2. 中断方式:用TIM7实现1s反转一次LED灯。
补:定时时间计算如下:
注意单位Tout为ms。
在这里插入图片描述
arr:重装载值。
psc:预分频系数。
Tclk:定时器时钟。基本定时器为72Mhz。

实验1. 查询方式:利用TIM6实现定时1s的功能。

在这里插入图片描述

伪代码:

定时器初始化
{1.打开APB1定时器6的时钟。2.设置单脉冲模式。3.设置预分频系数。4.设置自动重装载值。5.UG置1,产生更新事件。(将上面的配置更新到寄存器)6.使能计数器。
}

因为设置了单脉冲模式,所以当发生更新事件时,就会自动关闭定时器,所以不需要手动关闭。
具体代码:

void TIM6_Init(u16 psc,u16 arr)
{RCC->APB1ENR |=(0X01 <<4); //1.打开APB1时钟TIM6->CR1 |=(0X01 <<3);  //2.设置单脉冲模式。TIM6->PSC =psc ; //3.设置分频系数TIM6->ARR =arr;  //4.设置装载值(上限值)  TIM6->EGR |=(0x01 <<0); //5.UG置1,产生更新事件。(将上面的配置更新到寄存器)TIM6->CR1 |=(0x01 <<0); //6.使能计数器
}

主函数:

int main()
{while(1){TIM6_Init(999,71); //(999+1)*(71+1)/72000 000 =1000 ms。LED1=1;TIM6_Init(999,71);LED1=0;  }
}

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

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

相关文章

Yolov5安装运行过程中出现的问题

Yolov5安装运行过程中出现的问题合集 安装问题pip 安装 requirements.txtcmd下如何退出python&#xff1f;升级numpy protobuf版本过高AttributeError: Can’t get attribute ‘SPPF’ on <module ‘models.common’ from 地址找不到图片NameError: name warnings is not de…

Spring Cloud学习(九)【Elasticsearch 分布式搜索引擎01】

文章目录 初识 elasticsearch了解 ES倒排索引ES 的一些概念安装es、kibana安装elasticsearch部署kibana 分词器安装IK分词器ik分词器-拓展词库 索引库操作mapping 映射属性索引库的 CRUD 文档操作添加文档查看、删除文档修改文档Dynamic Mapping RestClient 操作索引库什么是Re…

后端老项目迁移方法

老项目迁移方法 需求&#xff1a; 因某个模块MySQL表结构、表关系 错乱复杂&#xff0c;而且其他模块的代码也在操作这个模块的数据库 耦合严重 导致Web工程代码紊乱、不易理解、性能低下&#xff0c; 故在 系统由A JavaWeb工程迁移至B工程 时&#xff0c;重构MySQL表结构、表…

计算机毕业设计选题推荐-个人健康微信小程序/安卓APP-项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

2023年【陕西省安全员B证】考试报名及陕西省安全员B证模拟试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年陕西省安全员B证考试报名为正在备考陕西省安全员B证操作证的学员准备的理论考试专题&#xff0c;每个月更新的陕西省安全员B证模拟试题祝您顺利通过陕西省安全员B证考试。 1、【多选题】《陕西省建设工程质量和…

【C++】容器string的构造函数和迭代器

目录 1 什么是string 2 迭代器 2.1 迭代器的使用 2.2 auto关键字以及代码可读性 3 构造函数 string - C Reference 1 什么是string 上图是C官网对于string的解释&#xff1a;string是表示字符序列的对象。 string本质是一个类&#xff0c;位于std的命名空间下&#xff0…

Android File Transfer(安卓文件传输工具)

Android File Transfer 是一款安卓文件传输工&#xff0c;它允许在Mac操作系统和Android设备之间进行文件传输。 该软件通过USB连接将文件从Mac电脑传输到连接的Android设备&#xff0c;或者反过来从Android设备传输文件到Mac电脑。这包括照片、视频、音乐、文档和其他文件类型…

从iddata函数生成的结构体数据中获取时间序列、输入序列和输出序列

从iddata函数生成的结构体数据中获取时间序列、输入序列和输出序列 在使用iddata函数生成结构体数据后&#xff0c;有时需要单独使用其中的时间序列&#xff0c;输入序列和输出序列&#xff0c;此时需要对iddata生成的数据进行分析&#xff0c;以获得所需数据。本文说明读取时…

特征缩放和转换以及自定义Transformers(Machine Learning 研习之九)

特征缩放和转换 您需要应用于数据的最重要的转换之一是功能扩展。除了少数例外&#xff0c;机器学习算法在输入数值属性具有非常不同的尺度时表现不佳。住房数据就是这种情况:房间总数约为6至39320间&#xff0c;而收入中位数仅为0至15间。如果没有任何缩放&#xff0c;大多数…

CAD长方形纤维插件2D

插件介绍 CAD长方形纤维插件2D版本可用于在AutoCAD软件内生成随机分布的长方形纤维图形&#xff0c;生成的dwg格式模型可用于模拟二维随机分布的纤维复合材料、随机初始裂缝等&#xff0c;同时模型可导入COMSOL、Abaqus、ANSYS、Fluent等有限元软件内进行仿真分析计算。 插件…

关于ASO优化的分步入门指南1

欢迎阅读我们的应用商店优化&#xff08;ASO&#xff09;分步指南&#xff0c;接下来我们将引导大家完成ASO研究的初始步骤&#xff0c;为提高应用程序的知名度和吸引自然下载奠定基础。 1、确定竞争对手。 首先确定应用程序的直接和间接竞争对手。我们可以通过咨询客户或进行…

掌握深度学习利器——TensorFlow 2.x实战应用与进阶

掌握深度学习利器——TensorFlow 2.x实战应用与进阶 摘要&#xff1a;随着人工智能技术的飞速发展&#xff0c;深度学习已成为当下最热门的领域之一。作为深度学习领域的重要工具&#xff0c;TensorFlow 2.x 备受关注。本文将通过介绍TensorFlow 2.x的基本概念和特性&#xff…