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); // 使能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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

怎样优雅地增删查改(五):按组织架构查询

文章目录 原理实现应用测试 之前我们实现了Employee,Alarm管理模块以及通用查询应用层。 Employee的集合查询业务,是通过重写CreateFilteredQueryAsync方法,来实现按组织架构查询的过滤条件。 我们将这段逻辑代码提取到通用查询应用层中&…

数据结构--图的存储 十字链表、邻接多重表

数据结构–图的存储 十字链表、邻接多重表 十字链表存储有向图 空间复杂度:O(|V||E|) 如何找到指定顶点的所有出边?——顺着绿色线路找 如何找到指定顶点的所有入边?——顺着橙色线路找 注意:十字链表只用于存储有向图 \color{re…

xss跨站脚本攻击总结

XSS(跨站脚本攻击) 跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets )CSS的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当…

力扣 332. 重新安排行程

一、题目描述 给你一份航线列表 tickets,其中 tickets[i] [fromi, toi] 表示飞机出发和降落的机场地点。请你对该行程进行重新规划排序。 所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 开始。…

ARM微控制器 AM2432BSEFHIALXR、AM2432BSFFHIALV技术参数(32位MCU)

1、AM2432BSEFHIALXR 32位MCU采用293引脚FCCSP封装,工作频率最高可达800MHz。该微控制器专为需要结合处理和实时通信的工业应用而构建,例如远程I/O模块和电机驱动器。 核心处理器:ARM Cortex-M4F,ARM Cortex-R5F 内核规格&#xf…

浅谈下mvc和mvp、mvvm到mvvm+Jetpack

作者:抓不住老鼠的猫 三种架构模式 MVC MVC全名为Model-View-Controller,图解如下 View:负责与用户交汇,显示界面。Controller:负责接收来自view的请求,处理业务逻辑。Model:负责数据逻辑&…

vue学习笔记(一)

1.编辑器选择 是用vscode 和 webstrom 个人感觉 vscode的插件比较多,对vue3的支持比较好 webstorm的自动保存比较好 各有优劣吧 我学习的这个项目目前采用vscode 2.vue2 还是 vue3 框架学通了都是通用的,这个时间点来学肯定是学vue3 只是顾虑到团…

Java利用POI导入Excel数据(多个sheet、模板)

需求:根据excel模板导入数据 sheet1:1-6行为固定格式,且需要取值({xxx});7行开始为数据集合(list) sheet2:都为固定格式,取值地方:{xxx} 1、数据格式(两个Sheet&…

【redis】redis管道简述

redis管道可以一次性发送多条命令。 命令示例如下: [xxxlocalhost ~]$ echo -e "set k4 99\nincr k4\nget k4" | nc localhost 6379 \OK :100 $3 100下面先简述一下这条命令的组成,再简述一下管道的常用场景和注意事项。 首先,|是…

arping命令 ip地址冲突检测 根据ip查mac地址

arping命令介绍 arping 命令主要用来获取ip对应的mac地址,更新本地arp缓存表。平时主要用来探测ip地址是否冲突即同一个网络里,同一个ip不同mac地址的情况。ip地址冲突将导致网络故障。 arping常用命令参数 arping [参数] ip -U 强制更新邻近主机的a…

JVM系列(8)——对象的内存布局

1、对象的创建过程 加载-验证-准备-解析-初始化-申请内存-成员变量赋初始值-加载构造方法。 前半段是JVM系列(5)——类加载过程,申请内存可参考:JVM系列(3)——内存分配与回收策略。 2、对象在内存中的存…

81. 正则表达式

一、概述二、匹配单个字符三、匹配一组字符四、使用元字符五、重复匹配六、位置匹配七、使用子表达式八、回溯引用九、前后查找十、嵌入条件参考资料 一、概述 正则表达式用于文本内容的查找和替换。 正则表达式内置于其它语言或者软件产品中,它本身不是一种语言或…

高时空分辨率、高精度一体化预测技术的风、光、水自动化预测技术的应用

第一章 预测平台讲解及安装 一、高精度气象预测基础理论介绍 综合气象观测数值模拟模式; 全球预测模式、中尺度数值模式; 二、自动化预测平台介绍 Linux系统 Crontab定时任务执行机制 Bash脚本自动化编程 硬件需求简介 软件系统安装 …

ylb-接口2首页产品数据和接口3产品列表

总览: 1、service处理(分页查询) 在api模块下service包,创建一个产品接口ProductService:(目前方法为分页查询queryByTypeLimit(Integer pType,Integer pageNo,Integer pageSize)) package…

矩阵AB和BA的特征值相同

手写的,如下图: 即可证明,矩阵AB的特征值和BA的特征值相同。 关于矩阵转置和逆矩阵混合运算,有如下规律:

Elasticsearch 介绍及java集成

一、Elasticsearch 基础介绍 ElasticSearch 是分布式实时搜索、实时分析、实时存储引擎,简称(ES), 成立于2012年,是一家来自荷兰的、开源的大数据搜索、分析服务提供商,为企业提供实时搜索、数据分析服务,…

(学习笔记-TCP连接断开)建立了连接,但是客户端或服务端出现问题,会怎么样?

客户端突然出现故障 客户端出现故障指的是客户端的主机发生了宕机或者断电的场景。发生这种情况的时候,如果服务端一直不会发送数据给客户端,那么服务端是永远无法感知到客户端宕机这件事的,也就是服务端的TCP连接将一直处于ESTABLISH 状态&…

【软考】系统架构设计风格分类的个人理解

个人适当学习了软考系统架构设计师中关于系统架构设计相关的内容,梳理了一下相关信息。 常见架构类型和常见分类 常见的软考中出现的系统架构列举如下: 分层架构管道-过滤器架构客户端-服务器架构模型-视图-控制器架构,即MVC架构事件驱动架…

AutoDL 训练stable-diffusion lora模型

1.创建镜像实例 2. 启动实例 3.启动服务 4.配置参数 4.1 基础模型选择 4.2 文件路径设置 5.点击打印训练信息 6.训练模型(点击Train model)

SpringBoot整合knife4j

knife4j 文档地址:https://doc.xiaominfo.com/ knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案。 Swagger介绍 前后端分离开发模式中,api文档是最好的沟通方式。 Swagger 是一个规范和完整的框架,用于生成、描述、调用和…