STM32单片机示例:多个定时器同步触发启动

news2024/11/25 14:38:36

文章目录

  • 前言
  • 基础说明
  • 关键配置与代码
  • 其它补充
  • 示例链接

前言

多个定时器同步触发启动是一种比较实用的功能,这里将对此做个示例说明。

基础说明

该示例演示通过一个TIM使能时同步触发使能另一个TIM。

本例中使用TIM1作为主机,使用TIM1的使能信号作为触发信号,使用TIM3作为从机。该例程实现的效果为,当TIM1、TIM3都初始化后,TIM3使能时并不会立即工作,只有当TIM1使能后TIM3才开始工作。

为了方便观察,两个TIM的CH1都设置为PWM输出方式:TIM1_CH1 -> PE9 、 TIM3_CH1 -> PA6 。

除默认生成的代码,只在 main.c 文件添加几行手动编写的代码。

关键配置与代码

这里只贴出关键的配置与代码,完整示例可以通过文后链接查看。

本示例中关键配置就是TIM主机从机触发信号等配置了:
在这里插入图片描述
在这里插入图片描述

除了配置生成的代码,需要手动添加的代码就几行:
HAL库

int main(void)
{
  HAL_Init();
  SystemClock_Config();
  MX_GPIO_Init();
  MX_TIM1_Init();
  MX_TIM3_Init();

  HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1); // 使能TIM3
//  HAL_Delay(233); // 这里不管设置多少延时,TIM3一定都是TIM1使能后才会开始工作
                    // 不过因为当前PWM输出参数设置下,上面函数执行后 TIM3_CH1 通道就会置于高电平状态
  HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1); // 使能TIM1

  while (1)
  {
  }
}

LL库

int main(void)
{
  LL_APB4_GRP1_EnableClock(LL_APB4_GRP1_PERIPH_SYSCFG);
  NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);
  NVIC_SetPriority(SysTick_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(),15, 0));
  SystemClock_Config();
  MX_GPIO_Init();
  MX_TIM1_Init();
  MX_TIM3_Init();

  LL_TIM_CC_EnableChannel(TIM3, LL_TIM_CHANNEL_CH1); // 使能TIM3_CH1

//  LL_mDelay(233); // 这里不管设置多少延时,TIM3一定都是TIM1使能后才会开始工作

  LL_TIM_CC_EnableChannel(TIM1, LL_TIM_CHANNEL_CH1); // 使能TIM1_CH1
  LL_TIM_EnableAllOutputs(TIM1); // 对于高级定时器需要这一行PWM才会有输出
  LL_TIM_EnableCounter(TIM1); // 使能TIM1开始计数

  while (1)
  {
  }
}

其它补充

对于哪个TIM可以被哪个TIM触发,ITRx是多少可以参考芯片参考手册的 TIMx internal trigger connection (TIMx 内部触发连接) 表格。
在这里插入图片描述

示例链接

仓库地址: https://github.com/NaisuXu/STM32_MCU_Examples

本示例为仓库中 TIM_Sync_HAL_H750TIM_Sync_LL_H750

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

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

相关文章

OpenCv之图像直方图

目录 一、基本概念 二、使用OpenCv统计直方图 三、使用掩膜的直方图 一、基本概念 图像直方图是用一表示教字图像中亮度分布的直方图,标绘了图像中每个高度值的像素数。可以借助观察该有方图了解需要如何调整亮度分布的直方图。这种直方图中,横坐标的左…

Android 个人开发者如何接入广告SDK,实现app流量变现

接入广告的APP连接 大家可以下载看看(无需积分) 链接: https://download.csdn.net/download/qq_38355313/88063389 开屏广告示意图: 1.个人开发者如何添加广告SDK? 像大厂的广告SDK,比如穿山甲SDK,点广…

SpringMvc配置静态资源访问路径

文章目录 1. 整体流程2. registry.addResourceHandler()2.1 函数分析2.2 结果演示 3. ResourceHandlerRegistration.addResourceLocations()3.1 函数分析3.2 结果演示 1. 整体流程 1. 写一个配置类继承WebMvcConfigurationSupport 2. 利用 registry.addResourceHandler("…

ylb-接口4投资排行榜

总览: 1、使用Redis存储投资信息 2、Redis常量类 在common模块constants包,创建一个Redis常量类(RedisKey): package com.bjpowernode.common.constants;public class RedisKey {/*投资排行榜*/public static fin…

【雕爷学编程】Arduino动手做(164)---Futaba S3003舵机模块3

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&#x…

计算机vcruntime140.dll丢失的解决方法,重新安装教程

vcruntime140.dll是Microsoft Visual C Redistributable文件中的一个动态链接库(DLL)。这个文件是由Microsoft开发的,用于支持C编程语言的运行环境。vcruntime140.dll是Windows系统非常重要的文件,通常会被一些应用程序或游戏所需…

JS-26 认识防抖和节流函数;自定义防抖、节流函数;自定义深拷贝、事件总线函数

目录 1_防抖和节流1.1_认识防抖和节流函数1.2_认识防抖debounce函数1.3_防抖函数的案例1.4_认识节流throttle函数 2_Underscore实现防抖和节流2.1_Underscore实现防抖和节流2.2_自定义防抖函数2.3_自定义节流函数 3_自定义深拷贝函数4_自定义事件总线 1_防抖和节流 1.1_认识防…

【源码解析】Mybatis执行原理

Mybatis执行原理 1.获取SqlSessionFactory2.创建SqlSession3.创建Mapper、执行SQL MyBatis 是一款优秀的持久层框架,MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和…

深入篇【C++】谈vector中的深浅拷贝与迭代器失效问题

深入篇【C】谈vector中的深浅拷贝与迭代器失效问题 Ⅰ.深浅拷贝问题1.内置类型深拷贝2.自定义类型深拷贝 Ⅱ.迭代器失效问题1.内部迭代器失效2.外部迭代器失效 Ⅰ.深浅拷贝问题 1.内置类型深拷贝 浅拷贝是什么意思?就是单纯的值拷贝。 浅拷贝的坏处: ①…

❤️创意网页:HTML5,canvas创作科技感粒子特效(科技感粒子、js鼠标跟随、粒子连线)

✨博主:命运之光 🌸专栏:Python星辰秘典 🐳专栏:web开发(简单好用又好看) ❤️专栏:Java经典程序设计 ☀️博主的其他文章:点击进入博主的主页 前言:欢迎踏入…

力扣 452. 用最少数量的箭引爆气球

题目来源:https://leetcode.cn/problems/minimum-number-of-arrows-to-burst-balloons/description/ C题解1: 根据x_end排序,x_start小的在前,这样可以保证如果第 i 个球的x_end大于等于第 j 个球的x_start时,第 j 个球…

TabBar和TabBarView实现顶部滑动导航

home.dart子页面主要代码&#xff1a; import package:flutter/material.dart;class HomePage extends StatefulWidget {const HomePage({super.key});overrideState<HomePage> createState() > _HomePageState(); }class _HomePageState extends State<HomePage&…

WMTS 地图切片Web服务 协议数据解析

1. WMTS 描述 WMTS(Web Map Tiles Service):地图切片Web服务。 2. 数据示例&#xff1a; arcgis online 导出的wmts xml&#xff1a; https://sampleserver6.arcgisonline.com/arcgis/rest/services/WorldTimeZones/MapServer/WMTS 内容解析&#xff1a; contents中可能包…

hybridCLR热更遇到问题

报错1&#xff1a; No ‘git‘ executable was found. Please install Git on your system then restart 下载Git安装&#xff1a; Git - Downloading Package 配置&#xff1a;https://blog.csdn.net/baidu_38246836/article/details/106812067 重启电脑 unity&#xff1a;…

Mysql数据库日志和数据的备份恢复

目录 一、数据库备份的重要性 二、数据库备份的分类 三、常见的备份方法 1.物理冷备 2.专用备份工具 3.启用二进制日志进行增量备份 4.第三方工具备份 四、完全备份 1.简介 2.优缺点 五、完全备份与恢复 1.物理冷备份与恢复 2.mysqldump备份与恢复 六、mysql日志管…

SSRF漏洞(原理、挖掘点、漏洞利用、修复建议)

一、介绍SSRF漏洞 SSRF (Server-Side Request Forgery,服务器端请求伪造)是一种由攻击者构造请求&#xff0c;由服务端发起请求的安全漏洞。一般情况下&#xff0c;SSRF攻击的目标是外网无法访问的内部系统(正因为请求是由服务端发起的&#xff0c;所以服务端能请求到与自身相…

【密码学】一、概述

概述 1、密码学的发展历史1.1 古代密码时代1.2 机械密码时代1.3 信息密码时代1.4 现代密码时代 2、密码学的基本概念3、密码学的基本属性4、密码体制分类4.1 对称密码体制4.2 非对称加密体制 5、密码分析 1、密码学的发展历史 起因&#xff1a;保密通信和身份认证问题 根据时间…

C++基础算法二分篇

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;C算法 &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 主要讲解二分算法&#xff0c;分别讲解了整数二分和浮点二分 文章目录…

Mybatis-Plus(二)--Mybatis-Plus方法大全

通用CRUD大全&#xff08;Mybatis-Plus为我们提供了哪些操作&#xff09; 还有在mybatis中遇到列名和属性名不一致等等的情况&#xff0c;在mybatis中xml中声明解决&#xff0c;在mybatis-plus中也都有对应的解决。 1.插入操作 //插入一条记录 //参数entity是实体对象 int ins…

数据结构day5(2023.7.19)

一、Xmind整理&#xff1a; 双向链表的插入与删除&#xff1a; 二、课上练习&#xff1a; 练习1&#xff1a;单链表任意元素删除 /** function: 按元素删除* param [ in] * param [out] * return 返回堆区首地址*/ Linklist delete_by_data(datatype key,Linklist L) …