正点原子-STM32通用定时器学习笔记(1)

1. 通用定时器简介(F1为例)

F1系列通用定时器有4个,TIM2/TIM3/TIM4/TIM5

主要特性:

16位递增、递减、中心对齐计数器(计数值:0~65535);

16位预分频器(分频系数:1~65536);

可用于触发DAC、ADC;

更新事件、触发事件、输入捕获、输出比较时,会产生中断/DMA请求;

4个独立通道,可用于:输入捕获、输出比较、输出PWM、单脉冲模式;

使用外部信号控制定时器且可实现多个定时器级联的同步电路(用一个定时器的溢出事件作为下一个定时器的时钟源驱动计数器计数);

支持编码器和霍尔传感器电路等(用于电机)。

2. 通用定时器框图

定时器的核心是③时基单元,不管是通用定时器还是高级定时器,都是在时基单元的基础上拓展出来的

将通用定时器分为六部分来一一介绍:

①时钟源

通用定时器的时钟源有4类

第一类 内部时钟(CK_INT)

第二类 内部触发输入(ITR0~ITR1)

第三类 外部时钟模式2(TIMx_ETR),来自IO口复用为TIMx_ETR引脚

第四类 外部时钟模式1,来自TIMx_CH1、TIMx_CH2

为什么说不来自通道3和通道4,因为①时钟源框图里没有对应的TI3FP和TI4FP信号!

 我们可以在《数据手册》或《原理图》中找到管脚定义,各个功能对应的IO口;

②控制器

TRGO触发信号可以触发DAC、ADC以及到其他寄存器;

什么叫触发到其他寄存器呢?

触发输出信号会连接另一寄存器的内部触发输入信号(ITR0~ITR1),从而实现级联的功能;

③时基单元

原理与基本定时器相同,不在赘述,可以参考基本定时器部分帖子!

④输入捕获

应用流程:比如外部信号通过通道1复用的IO口进入通道1产生TI1信号,经过输入滤波器和边沿检测器产生TI1FP1和TI1FP2,通过相关配置选择映射到IC1或IC2(也可理解为输入捕获通道1或输入捕获通道2),经过预分频器,假设边沿检测器配置为上升沿检测,当捕获到上升沿时,会产生捕获事件U并把计数器的值转移到捕获/比较寄存器里,也会产生捕获中断CC1I(需要我们自己开启)。其他通道类似。

(通用IO,就是GPIO外设输入出输出功能。复用就是作为其他外设的的输入或者输出使用)

为什么要有输入滤波器和边沿检测器呢?

答:当外部来一个脉冲信号,这个信号不一定是稳定的,可能会有毛刺,而这些毛刺的频率一定会比脉冲高电平的信号要高,因此控制输入滤波器就可以把高频的毛刺信号过滤掉,来保证脉冲信号的稳定;

        而边沿检测器的作用是检测信号是上升沿还是下降沿。

⑤捕获/比较(公共)

属于公共部分

⑥输出比较

应用流程:我们会往捕获/比较寄存器里写入比较值,计数器正常计数,当CNT计数器的计数值=捕获/比较寄存器的比较值(影子)时,会产生比较事件、输出参考信号(OC1REF,高电平有效)、比较中断(前提要配置),来进行输出控制(8种模式)产生OC1信号通过通道1输出给对应的IO口。其他通道类似。

图下面的ETRF信号是控制输出参考信号OC1REF的,会把OC1REF强制清零。

总结:输入捕获和输出比较是分时复用的,当输入捕获模块工作时,输出比较模块失效,当输出比较模块工作时,输入捕获模块失效。

3. 计数器时钟源 

计数器时钟源寄存器设置方法

计数器时钟选择类型

             设置方法

内部时钟(CK_INT)

 设置TIMx_SMCRSMS=000

外部时钟模式1:外部输入引脚(TIx)

设置TIMx_SMCRSMS=111

外部时钟模式2:外部触发输入(ETR)

设置TIMx_SMCRECE=1

内部触发输入(ITRx)

设置可参考STM32F10xxx参考手册_V10(中文版).pdf 14.3.15节

外部时钟模式1

通用定时器输入捕获部分框图介绍 

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

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

相关文章

VXLAN:虚拟化网络的强大引擎

1.什么是VXLAN VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网),是由IETF定义的NVO3(Network Virtualization over Layer 3)标准技术之一,是对传统VLAN协议的一种扩展。VXLAN的特…

【Python 实战】---- 实现向指定PDF指定页面指定位置插入图片

1. 需求 想要能否实现批量自动为多个pdf加盖不同六格虚拟章(不改变pdf原有分辨率和文字可识别性);改在pdf首页上方空白位置,一般居中即可;如可由使用者自主选择靠页边距更好,以便部分首页上方有字的文件时人工可微调位置。2. 需求分析 直接将 pdf 文件转换为图片,在将图…

AI绘画生成器爆改“土味中式”,你的丑图有救了!

最近“爆改”一词再度流行起来,指对人或物的外表进行大改造,主打一个反差感!万物皆可“爆改”?那怎么少得了我们室内设计呢!那么今天我们就借助AI绘画生成器,爆改别墅样板间,把陈旧的中式红木风改成现在设计圈的网红“宋韵”风格…

机器学习 | 基于网格搜索的SVM超参数调节

机器学习模型被定义为一个数学模型,其中包含许多需要从数据中学习的参数。然而,有一些参数,称为超参数,这些参数不能直接学习。它们通常是由人类在实际训练开始前根据直觉或经验和试验选择的。这些参数通过提高模型的性能&#xf…

RabbitMQ-3.发送者的可靠性

发送者的可靠性 3.发送者的可靠性3.1.生产者重试机制3.2.生产者确认机制3.3.实现生产者确认3.3.1.开启生产者确认3.3.2.定义ReturnCallback3.3.3.定义ConfirmCallback 3.发送者的可靠性 首先,我们一起分析一下消息丢失的可能性有哪些。 消息从发送者发送消息&#…

docker部署笔记系统flatnotes

效果 安装 创建目录 mkdir -p /opt/flatnotes/data && cd /opt/flatnotes/ chmod -R 777 /opt/flatnotes/ 创建并启动容器(可以自己修改账户和密码) docker run -d \ --restart unless-stopped \ --name flatnotes \ -p "10040:8080" \ -v "/dat…

linux k8s 源码编译及单集群测试

目录 概述实践安装插件docker 在线安装containerd安装二进制安装yum安装修改containder配置文件 cnietcdrsyncgo设置golang代理 安装CFSSL下载kubernetes代码编译启动本地单节点集群问题k8s没有被正常启动该如何k8s正常启动日志测试 结束 概述 此文详细说明在 centos 7上编译 k…

情人节送什么礼物既有面又不会出错?2024年情人节礼物指南来啦!

在浪漫的情人节,挑选一份既能表达心意又能展现品味的礼物是许多人关注的问题。为了帮助大家轻松应对这个甜蜜的日子,我们特别整理了一份2024年情人节礼物推荐清单。从珠宝、护肤品到黑科技,每一份礼物都充满着爱意和惊喜。 1. 久戴无负担的护…

【成品论文】2024美赛B题完整成品论文23页+3小问matlab代码+数据集汇总

2024 年美国大学生数学建模竞赛(2024 美赛)B 题: 2024 MCM 问题 B: 搜寻潜水艇 题目翻译: Maritime Cruises Mini-Submarines (MCMS)是一家总部位于希腊的公司,专门制造能够携 带人类到达海洋最深处的潜水艇。潜水艇是…

【Java 数据结构】反射

反射 1 定义2 用途(了解)3 反射基本信息4 反射相关的类(重要)4.1 Class类(反射机制的起源 )4.1.1 Class类中的相关方法(方法的使用方法在后边的示例当中) 4.2 反射示例4.2.1 获得Class对象的三种方式4.2.2 反射的使用 5、反射优点和缺点 1 定义 Java的反…

租游戏服务器多少钱1个月?一年价格多少?

游戏服务器租用多少钱一年?1个月游戏服务器费用多少?阿里云游戏服务器26元1个月、腾讯云游戏服务器32元,游戏服务器配置从4核16G、4核32G、8核32G、16核64G等配置可选,可以选择轻量应用服务器和云服务器,阿腾云atengyu…

HarmonyOS开发工具DevEco Studio安装以及汉化

HUAWEI DevEco Studio 面向HarmonyOS应用及元服务开发者提供的集成开发环境(IDE), 助力高效开发。 应用内共享HSP开发 支持在Stage模型和模块化编译方式下开发HSP,以及共享HSP给应用内其他模块使用;支持运行态共享HSP。Code Linter代码检查 支持ArkTS/T…