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

文章目录

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

前言

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

基础说明

该示例演示通过一个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); // 使能TIM1while (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_CH1LL_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.mzph.cn/news/3361.shtml

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

相关文章

win10 vscode 打包springboot项目

1 查看 java -version 2 环境变量配置 JAVA_HOME where java # D:\JDK\bin\java.exe1 在"系统变量"部分,点击"新建(N)"按钮。 2 在"变量名"字段中输入 JAVA_HOME 3 在"变量值"字段中输入 JDK 的安装路径。例如&#xff0…

基于 Linux 的轻量级多线程 HTTP 服务

使用基本的Linux系统调用来创建一个TCP socket&#xff0c;监听端口8080&#xff0c;并在接受到客户端连接时创建一个新的线程来处理连接。每个连接处理函数都是一个独立的线程&#xff0c;读取客户端请求并发送固定的HTTP响应。 代码&#xff1a; #include <iostream> …

简笔风和写实风的区别

现实主义和风格化 当我们谈论现实主义和风格化时&#xff0c;我们是什么意思&#xff1f;这看起来相当明显&#xff0c;现实主义指的是模仿逼真的逼真的图形。它不一定需要存在于现实世界中&#xff0c;但被传达为它属于我们的世界。10年前&#xff0c;我们认为现实的东西在今…

尝试-InsCode Stable Diffusion 美图活动一期

一、 Stable Diffusion 模型在线使用地址&#xff1a; https://inscode.csdn.net/inscode/Stable-Diffusion 二、模型相关版本和参数配置&#xff1a; 活动地址 三、图片生成提示词与反向提示词&#xff1a; 提示词&#xff1a;realistic portrait painting of a japanese…

Effective C++学习笔记(6)

目录 条款32. 确定你的public继承塑模出is-a关系条款33.避免遮掩继承而来的名称条款34.区分接口继承和实现继承条款35.考虑virtual函数以外的其他选择条款36.绝不重新定义继承而来的non-virtual函数条款37.绝不重新定义继承而来的缺省参数值条款38.通过复合塑模出has-a或“根据…

spring-boot-starter-parent 与 spring-boot-dependencies

Spring Boot的每个发布版本都会规划它所支持的依赖项。实际上&#xff0c;你不用指定这些依赖项的版本号&#xff0c;因为Spring Boot都为你管理好了。当更新Spring Boot时&#xff0c;会相应的更新依赖。 Maven管理依赖 Maven用户可以继承spring-boot-starter-parent项目&am…

OpenMP并行化傅里叶变换

设计思想 傅里叶变换&#xff0c;表示能将满足一定条件的某个函数表示成三角函数&#xff08;正弦和/或余弦函数&#xff09;或者它们的积分的线性组合。在不同的研究领域&#xff0c;傅里叶变换具有多种不同的变体形式&#xff0c;如连续傅里叶变换和离散傅里叶变换。 快速傅…

windows各种文件操作、系统相关的命令行脚本

目录 写在前面文件操作命令说明遍历文件并写进txt按行读取txt并文件计数文件重命名 参考完 写在前面 1、本文内容 windows各种文件操作、系统相关的命令行脚本 请保存为.bat运行 2、平台 windows10 3、转载请注明出处&#xff1a; https://blog.csdn.net/qq_41102371/article/…

《零基础入门学习Python》第047讲:魔法方法:定制序列

0. 请写下这一节课你学习到的内容&#xff1a;格式不限&#xff0c;回忆并复述是加强记忆的好方式&#xff01; 常言道&#xff1a;“无规矩不成方圆”&#xff0c;讲的是万事万物的发展都要在一定的规则下去运行&#xff0c;只有遵循一定的协议去做&#xff0c;事情才能够按照…

如何将一个目录下的所有md文件导出成pdf

要将一个目录下的所有Markdown&#xff08;.md&#xff09;文件导出为PDF&#xff0c;您可以使用Node.js进行编程来实现。以下是一种可能的方法&#xff1a; 首先&#xff0c;您需要设置Node.js环境并安装依赖项。在命令行中导航到您的项目目录&#xff0c;并运行以下命令&…

前端js防抖

一、原生js防抖 <!DOCTYPE html> <html> <head><title>防抖按钮示例</title> </head> <body><button id"immediateButton">立即触发</button><button id"waitButton">等候触发</button&g…

Stream实现List和Map互转总结

本文来说下Stream实现List和Map互转总结 文章目录 实体类Map转List代码List转Map代码 实体类 本篇介绍Stream流List和Map互转&#xff0c;同时在转换过程中遇到的问题分析。 package cn.wideth.collect;import lombok.AllArgsConstructor; import lombok.Data; import lombok.N…

GAMES101作业2

文章目录 作业内容Step 1. 创建三角形的2维bounding boxStep 2. 判断bBox中的像素中心点是否在三角形内Step 3. 比较插值深度和Depth BufferMSAA 作业内容 在屏幕上画出一个实心三角形&#xff0c; 换言之&#xff0c;栅格化一个三角形。上一次作业中&#xff0c;在视口变化之…

二次元少女-InsCode Stable Diffusion 美图活动一期

一、 Stable Diffusion 模型在线使用地址&#xff1a; https://inscode.csdn.net/inscode/Stable-Diffusion 二、模型相关版本和参数配置&#xff1a; 模型版本&#xff1a;chilloutmix_NiPrunedFp32Fix.safetensors 采样方法(Sampler)Sampling method&#xff1a;DPM SDE …

2023年经典【自动化面试题】附答案

一、请描述一下自动化测试流程&#xff1f; 自动化测试流程一般可以分为以下七步&#xff1a; 编写自动化测试计划&#xff1b; 设计自动化测试用例&#xff1b; 编写自动化测试框架和脚本&#xff1b; 调试并维护脚本&#xff1b; 无人值守测试&#xff1b; 后期脚本维…

C#如何控制IIS动态添加删除网站详解

目的是在Winform程序里面&#xff0c;可以直接启动一个HTTP服务端&#xff0c;给下游客户连接使用。 查找相关技术&#xff0c;有两种方法&#xff1a; 1.使用C#动态添加网站应用到IIS中&#xff0c;借用IIS的站群软件管理能力来提供HTTP接口。本文即对此做说明 2.在Winform…

【UE4 塔防游戏系列】07-子弹对敌人造成伤害

目录 效果 步骤 一、让子弹拥有不同伤害 二、敌人拥有不同血量 三、修改“BP_TowerBase”逻辑 四、发射的子弹对敌人造成伤害 效果 步骤 一、让子弹拥有不同伤害 为了让每一种子弹拥有不同的伤害值&#xff0c;打开“TotalBulletsCategory”&#xff08;所有子弹的父类…

【Spring Boot】Web开发 — Web开发简介

Web开发简介 首先介绍Spring Boot 提供的Web组件spring-boot-starter-web&#xff0c;然后介绍Controller和RestController注解&#xff0c;以及控制数据返回的ResponseBody注解&#xff0c;最后介绍Web配置&#xff0c;以便让读者对使用Spring Boot开发Web系统有初步的了解。…

linux下一个iic驱动(按键+点灯)-互斥

一、前提&#xff1a; 硬件部分&#xff1a; 1. rk3399开发板&#xff0c;其中的某一路iic&#xff0c;这个作为总线的主控制器 2. gd32单片机&#xff0c;其中的某一路iic&#xff0c;从设备。主要是按键上报和灯的亮灭控制。&#xff08;按键大约30个&#xff0c;灯在键的…

送呆萌的她一个皮卡丘(Python实现)

目录 1 呆萌的她 2 思维需要革新 3 送她的一个漂亮皮卡丘 4 Python完整代码奉上 1 呆萌的她 又是一季春风暖阳下, 你是一湾一湾羞涩的春波。 静静感受着&#xff0c; 你垂下的枝膊 在我的脸上轻轻抚摸 一对春燕,低低掠过 涟漪乍起&#xff0c;是你浅浅的笑窝...... 2 思…