STM32定时器级联功能

参考:官方文档《stm32f4xx参考手册.pdf》

级联功能,可以把两个定时器的功能关联起来,具体有以下几种:

本文只讲其中一个功能,定时器1给定时器2当分频器。这种功能可以把两个32位定时器,合并为为一个64位定时器,可以把2个16位定时器合并为一个32位定时器、甚至可以把4个16位定时器合并为一个64位定时器。这可以增加计时长度。虽然用定时中断+软件加法计数,也可实现任意时长计时,但是太耗CPU了,既然STM32硬件具备这种硬件级联功能,我们就要用起来。

定时器的输入脉冲默认来自于系统时钟总线APB1/APB2,

 

根据上图,我们发现,TIM1可以输出一个脉冲(时钟)信号TRGO,这个信号被连接到STM32       内部的一根信号线上,这根信号线叫ITR0(STM32内部共有4根这样的信号线,你也可以理解为4个没有被引出的引脚插针)。

TRGO是一个事件输出信号,只有TIM被设置为主模式时,才能使用。参见下文CR2寄存器的MMS位域。

级联功能,并不是任意两个TIM都能随意连接的,而是被固定死的,如以下3个表所示。

以表72的第一个单元格为例,意思是:TIM5的输出信号TRGO可以连接到TIM1的ITR0上,作为TIM1的时钟输入。这样如果我们让TIM5每1ms发出一次TRGO脉冲,那么TIM1的计数寄存器每过1ms就+1。

 

 下面看一下CR2寄存器的MMS位段:

 

根据上图可见,每个定时器的时钟输入可以来自内部信号(ITR0/1/2/3)、也可以来自时钟总线RCC的TIMxCLK、也可以来自外部引脚输入ETR等等,每个定时器有一个内部输出信号TRGO。

在芯片内部,某些定时器的输出信号TRGO可以连接到另一个定时器的内部输入信号上。这样就实现了定时器级联。

定时器基本初始化代码就不贴了,只贴级联相关代码,TIM3做主机,TIM2做从机为例。

首先查询前面表格得知:TIM3做主机,TIM2做从机时,TIM2必须要从自己的ITR2信号线上获得时钟输入。

 


从定时器部分://设置SMCR寄存器的SMS位域,TIM_SlaveMode_External1=上图SMS中的111
TIM_SelectSlaveMode(TIM2, TIM_SlaveMode_External1);//TIM3设置成了主模式,根据手册表76,TIM2作为从机,输入信号只能来自ITR2
TIM_SelectInputTrigger(TIM2, TIM_TS_ITR2);//主定时器部分
TIM_SelectMasterSlaveMode(TIM3, TIM_MasterSlaveMode_Enable);//TIM3设置为主模式
TIM_SelectOutputTrigger(TIM3, TIM_TRGOSource_Update);//设置TGRO信号的触发时机为:当定时器溢出(update)时

以上代码的效果是,当TIM3溢出时(无需设置溢出中断),就会发出TRGO脉冲到TIM2的ITR2信号线上,TIM2每收到一个脉冲,并分频后,CNT计数寄存器就+1。

注意:TIM2的分频寄存器PSC,是对ITR2的分频,不再是系统APB的TIM时钟。

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

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

相关文章

tampermonky插件安装

换了电脑,今天重新下载了tampermonky,哎,被自己气死的一上午。wwwww,最后发现最大的问题就是没有问题。 Edge能不用下载直接安装,但是何少 下载tampermonky,在谷歌程序扩展-chrome://extensions/ 添加解压…

GPT-4助力数据分析:提升效率与洞察力的未来关键技术 | 京东云技术团队

摘要 随着大数据时代的到来,数据分析已经成为企业和组织的核心竞争力。然而,传统的数据分析方法往往无法满足日益增长的数据分析需求的数量和复杂性。在这种背景下,ChatGPT-4作为一种先进的自然语言处理技术,为数据分析带来了革命…

CCLINK IE转MODBUS-TCP网关modbus tcp协议详解

你是否曾经遇到过需要同时处理CCLINK IE FIELD BASIC和MODBUS两种数据协议的情况?捷米的JM-CCLKIE-TCP网关可以帮助你解决这个问题。 捷米JM-CCLKIE-TCP网关可以分别从CCLINK IE FIELD BASIC一侧和MODBUS一侧读写数据,然后将数据存入各自的缓冲区。接着…

计算机网络 ARP协议 IP地址简述

ARP只能在一个链路或一段网络上使用

gitee linux免密/SSH 方式连接免登录

目录 生成SSH公钥通过 ssh-keygen 程序创建找到SSH公钥 在gitee中添加公钥参考 生成SSH公钥 通过 ssh-keygen 程序创建 shell> ssh-keygen -t rsa -C "xxxxxx.com" Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/i…

【CSS学习笔记】

学习内容 1.css是什么 2.CSS怎么用(快速入门) 3.CSS选择器(重点 难点) 4.美化页面(文字、阴影、超链接、列表、渐变…) 5.盒子模型 6.浮动 7.定位 8.网页动画(特效) 1.什么是CSS C…

Spring中的AOP

Spring中的AOP 一.Spring AOP的概念 1.AOP的概述 AOP的全称是Aspect Oriented Programming,即面向切面编程。是通过预编译方式和运行期间动态代理,实现程序功能的统一维护的一种技术。AOP是OOP面向对象编程的一种延续。 使用OOP编程时,虽然…

力扣 377. 组合总和 Ⅳ

题目来源:https://leetcode.cn/problems/combination-sum-iv/description/ C题解(来源代码随想录): 本题求的是排列总和,而且仅仅是求排列总和的个数,并不是把所有的排列都列出来。动规五部曲分析如下&…

开发命名规范

1项目命名规范 1、工程项目名,尽量想一些有意义、有传播价值的名称;比如星球、游戏、名人、名地名等;取名就跟给孩子取名一样,独特、有价值、有意义、好传播 2、所有的类都必须添加创建者和创建日期 3、所有代码:包括…

【Hystrix技术指南】(7)故障切换的运作流程原理分析(含源码)

背景介绍 目前对于一些非核心操作,如增减库存后保存操作日志发送异步消息时(具体业务流程),一旦出现MQ服务异常时,会导致接口响应超时,因此可以考虑对非核心操作引入服务降级、服务隔离。 Hystrix说明 官方…

学术论文GPT源码解读:从chatpaper、chatwithpaper到gpt_academic

前言 之前7月中旬,我曾在微博上说准备做“20个LLM大型项目的源码解读” 针对这个事,目前的最新情况是 已经做了的:LLaMA、Alpaca、ChatGLM-6B、deepspeedchat、transformer、langchain、langchain-chatglm知识库准备做的:chatpa…

PS/LR2024专用智能磨皮插件Portraiture提高P图效率

Portraiture 4智能磨皮插件支持Photoshop和Lightroom!Portraiture是一款智能磨皮插件,为Photoshop和Lightroom添加一键磨皮美化功能,快速对照片中皮肤、头发、眉毛等部位进行美化,无需手动调整,大大提高P图效率。全新4…

分布式搜索ElasticSearch-ES(一)

一、ElasticSearch介绍 ES是一款非常强大的开源搜索引擎,可以帮我们从海量的数据中快速找到我们需要的内容。 ElasticSearch结合kibana、Logstash、Beats,也就是elastic stack(ELK),被广泛运用在日志数据分析,实时监控等领域。 …

C#应用处理传入参数 - 开源研究系列文章

今天介绍关于C#的程序传入参数的处理例子。 程序的传入参数应用比较普遍,特别是一个随操作系统启动的程序,需要设置程序启动的时候不显示主窗体,而是在后台运行,于是就有了传入参数问题,比如传入/h或者/min等等。所以此…

【MySQL】表的内外连接

目录 一、内连接 二、外连接 1、左外连接 2、右外连接 一、内连接 内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我们前面学习的查询都是内连接,也是在开发过程中使用的最多的连接查询。 语法: select 字段 from 表1 i…

【Linux】进程间通信之管道

【Linux】进程间通信之管道 进程间通信进程间通信目的进程间通信的方式 管道(内核维护的缓冲区)匿名管道(用于父子间进程间通信)简单使用阻塞状态读写特征非阻塞状态读写特征 匿名管道特点命名管道 匿名管道与命名管道的区别 进程…

【electron】electron安装过慢和打包报错:Unable to load file:

文章目录 一、安装过慢问题:二、打包报错:Unable to load file: 一、安装过慢问题: 一直处于安装过程 【解决】 #修改npm的配置文件 npm config edit#添加配置 electron_mirrorhttps://cdn.npm.taobao.org/dist/electron/二、打包报错:Unable to load…

Spring Boot 统一功能处理(拦截器实现用户登录权限的统一校验、统一异常返回、统一数据格式返回)

目录 1. 用户登录权限校验 1.1 最初用户登录权限效验 1.2 Spring AOP 用户统⼀登录验证 1.3 Spring 拦截器 (1)创建自定义拦截器 (2)将自定义拦截器添加到系统配置中,并设置拦截的规则 1.4 练习:登录…

for macOS-21.1.0.3267中文直装版功能介绍及系统配置要求

FL Studio 21简称FL水果软件,全称是:Fruity Loops Studio编曲,由于其Logo长的比较像一款水果因此,在大家更多的是喜欢称他为水果萝卜,FL studio21是目前最新的版本,这是一款可以让你的计算机就像是一个全功能的录音室&…

最强自动化测试框架Playwright(10)- 截图

截图 捕获屏幕截图并将其保存到文件中: page.screenshot(path"screenshot.png")可将页面截图保存为screen.png import osfrom playwright.sync_api import Playwright, expect, sync_playwrightdef run(playwright: Playwright) -> None:browser p…