stm32--simulink开发之--timer的学习,硬件输入中断,触发事件,STM32通用定时器之输出比较模式与PWM模式(重要理解)

下面三个模块,一个比一个高级,当然使用是越来越简单
STM32F4xx系列控制器有2个高级控制定时器、10个通用定时器和2个基本定时器(推荐学习)

1,第一个模块:Timer

浅层理解:计数,不停的触发
Starts timer counter and provides current counter value
Timer Starts Timer Counter and Provides Current Counter Value: 这个模块启动定时器计数器并提供所选定时器模块的当前计数器值。当在配置参数中选择了模型初始化期间启动定时器参数时,只有在模型初始化期间才会启动计数器3

2,第二个模块:Timer Capture

浅层理解:和寄存器的值比较,并触发信号
Output the capture compare register value
Timer Capture Output the Capture Compare Register Value: 这个模块在配置为输入模式时,输出所选定时器模块和通道的捕获比较寄存器值。在捕获数据长度中指定要从捕获比较寄存器中读取的数据长度。对于大于1的数据长度,必须在STM32CubeMX项目中为所选的定时器模块和通道添加DMA。

3,第三个模块:PWM Output

浅层理解:发送pwm到通道硬件上

Generate square waveform on enabled channels using timer module
PWM Output Generate Square Waveform on Enabled Channels Using Timer Module12: 这个模块使用定时器模块在启用的通道上生成方波。模块输入控制每个通道的方波的占空比。如果将占空比单位参数设置为百分比,输入值为0将产生0%的占空比,输入值为100将在相应的通道上产生100%的占空比1。

4,第二个和三个模式的区别是什么?

STM32通用定时器之输出比较模式与PWM模式
stm32输出比较模式与PWM模式总结

输出比较模式和PWM模式都可以用来输出PWM波,在功能上两者有相同之处,对于一个定时器这两种方式都可以做到四路输出PWM,每一路PWM占空比都可调,也有不同之处,输出比较模式可以方便的调节每一路PWM波的频率,可以输出四路频率不同,占空比不同的PWM。但是PWM模式如果想要调节PWM波的频率,那么就只能重新设置预分频系数或者自动重装载寄存器ARR,并且输出的四路PWM频率必定一致 ,PWM模式是输出比较模式的子集。

如图是设置比较模式PWM 输出模式的方法
明显PWM模式是中间对齐模式,比较模式就是普通PWM
在这里插入图片描述

5,频率和占空比计算

使用Stm32CubeMx 完成PWM输入模式采集频率和占空比

频率和占空比计算的公式:
频率:TIM4在APB1时钟总线上,频率是72M,我们一开始设置的分频比是71(+1),所以我们的定时器计数频率是1M,即计数一次的时间是1/1M。那么我们通过读取的周期计数值计算出周期=TempPIpre*(1/1M),然后频率是周期的倒数,故我们需要的PI频率=1/(TempPIpre*(1/1M))=1M/TempPIpre。
占空比:TempPIpul是高电平计数值,TempPIpre是整个周期的计数值,所以TempPIpul/TempPIpre就是我们的正占空比,这里我TempPIpul*100是将小数显示扩大100倍成百分比显示。

6,下面是一些配置项的说明

总体的参考链接是:
https://ww2.mathworks.cn/help/ecoder/stmicroelectronicsstm32f4discovery/ref/timer.html
输入:
1,配置项:Enable frequency input
缩写:freq conunt
说明:“freq count — Frequency count of timer scalar” 的使用方法是,你可以设置一个常量值(constant),当计数器的计数值达到这个常量值时,就会触发一个事件,具体来说,你可以这样操作:首先,创建一个定时器实例,然后,使用 set_timer 函数来设置定时器的频率3。这个函数的参数就是你提到的常量值,也就是你希望在计数器达到多少时触发事件,最后,当计数器的计数值达到你设置的常量值时,就会触发一个事件。这个事件可以是任何你需要的操作,比如更新一个变量的值,或者执行一个函数。
2,配置项:Enable input to enable/disable timer
缩写:CEN(“CEN” 是 “Counter Enable”)
说明:“CEN — Port to enable timer counter scalar” 就像一个开关,用于控制计时器计数器的启用或禁用。当你设置 CEN 端口的值为 1 时,计时器计数器就会启动。相反,如果你设置 CEN 端口的值为 0,计时器计数器就会停止。这个功能在你需要精确控制计时器的运行时非常有用。
0 - 禁用计数器1
1 - 启用计数器1
3,配置项:Enable main ooutput enable(MOE) input
缩写:MOE
说明:“主输出”(Main Output)是指计时器的输出信号。在计时器中,“主输出使能”(Main Output Enable,简称 MOE)是一个功能,它控制计时器的主输出是否启用,当我们谈论计时器的 “主输出” 时,我们通常是指计时器产生的输出信号,而不是计数值(CNT)。这个输出信号可以用来驱动其他电子设备,或者作为其他电子设备的输入信号,在一些应用中,计时器的主输出信号可以用来驱动电机,或者控制LED的亮度。在这些情况下,计时器的主输出信号通常会通过PWM(脉宽调制)来控制电机的转速或LED的亮度。计时器的 “主输出” 和 “计数值” 是两个不同的概念。“计数值” 是计时器内部的一个状态,表示计时器已经计数的次数。而 “主输出” 是计时器产生的一个信号,可以用来驱动或控制其他电子设备。希望这个解释对你有所帮助!

stm32硬件输入中断,触发事件
在这里插入图片描述

7,下面是一些配置项的说明

总体的参考链接是:
https://ww2.mathworks.cn/help/ecoder/stmicroelectronicsstm32f4discovery/ref/timer.html
输入:
1,配置项:Enable frequency input
缩写:freq conunt
说明:“freq count — Frequency count of timer scalar” 的使用方法是,你可以设置一个常量值(constant),当计数器的计数值达到这个常量值时,就会触发一个事件,具体来说,你可以这样操作:首先,创建一个定时器实例,然后,使用 set_timer 函数来设置定时器的频率3。这个函数的参数就是你提到的常量值,也就是你希望在计数器达到多少时触发事件,最后,当计数器的计数值达到你设置的常量值时,就会触发一个事件。这个事件可以是任何你需要的操作,比如更新一个变量的值,或者执行一个函数。
2,配置项:Enable input to enable/disable timer
缩写:CEN(“CEN” 是 “Counter Enable”)
说明:“CEN — Port to enable timer counter scalar” 就像一个开关,用于控制计时器计数器的启用或禁用。当你设置 CEN 端口的值为 1 时,计时器计数器就会启动。相反,如果你设置 CEN 端口的值为 0,计时器计数器就会停止。这个功能在你需要精确控制计时器的运行时非常有用。
0 - 禁用计数器1
1 - 启用计数器1
3,配置项:Enable main ooutput enable(MOE) input
缩写:MOE
说明:“主输出”(Main Output)是指计时器的输出信号。在计时器中,“主输出使能”(Main Output Enable,简称 MOE)是一个功能,它控制计时器的主输出是否启用,当我们谈论计时器的 “主输出” 时,我们通常是指计时器产生的输出信号,而不是计数值(CNT)。这个输出信号可以用来驱动其他电子设备,或者作为其他电子设备的输入信号,在一些应用中,计时器的主输出信号可以用来驱动电机,或者控制LED的亮度。在这些情况下,计时器的主输出信号通常会通过PWM(脉宽调制)来控制电机的转速或LED的亮度。计时器的 “主输出” 和 “计数值” 是两个不同的概念。“计数值” 是计时器内部的一个状态,表示计时器已经计数的次数。而 “主输出” 是计时器产生的一个信号,可以用来驱动或控制其他电子设备。希望这个解释对你有所帮助!

stm32硬件输入中断,触发事件
在这里插入图片描述

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

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

相关文章

Servlet简述

Servlet是动态web资源开发技术,其实就是一个接口,将来定义Servlet实现类时,都必须实现该接口,并让web服务器运行Servlet 1.快速入门 使用注释配置访问路径在Servlet3.0之后应用,在此之前都是使用xml配置文件来配置的。…

零基础怎么学鸿蒙开发?

对于零基础的学习者来说,掌握鸿蒙开发不仅是迈向新技术的第一步,更是开拓职业道路的重要机遇。随着鸿蒙系统在各行各业的应用逐渐扩展,对于掌握这一项技术的开发人员需求也随之增长。下文将为大家提供针对零基础学习鸿蒙开发的逻辑&#xff0…

粒子群优化算法

PSO算法 粒子群算法(Particle,Swarm Optimization,PSO)由Kennedy和Eberhart于1995年提出,算法模仿鸟群觅食行为对优化问题进行求解。 粒子群算法中每个粒子包含位置和速度两个属性,其中,位置代表了待求问题的一个候选…

2024年最强网络安全学习路线,详细到直接上清华的教材!

关键词:网络安全入门、渗透测试学习、零基础学安全、网络安全学习路线 首先咱们聊聊,学习网络安全方向通常会有哪些问题 前排提示:文末有CSDN官方认证Python入门资料包! 1、打基础时间太长 学基础花费很长时间,光语言…

mysql 慢查询调优实战

目录 异常现象:进行复现:寻找原因:解决办法:办法一:指定执行索引办法二:先按二级索引里字段排序,再按id排序办法三:取消排序 最终方案:复盘: 异常现象&#x…

基于springboot+vue的校园赛事资讯网站(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

搜维尔科技:【简报】元宇宙数字人赛道,优秀作品《星云时报》赏析

AI 对人们来说是一种新产业,而人们对于它未来会面临的议题仍有许多疑虑,因此我们用新闻报导的方式列举一些有趣且具有可能性的标题,希望能让 大家了解 AI 在未来可能会带来什么问题,以及我们应该采取的态度。 学校: 新…

C++(17)——list的模拟实现

前面的文章中,介绍了,的模拟实现,本篇文章将介绍对于的模拟实现。 目录 1. list的基本结构: 2. list功能实现:尾部插入元素: 3. list迭代器的实现: 4. list功能实现:在任意位置前…

vue2 导入使用vue-codemirror详解

目录 vue2 导入使用vue-codemirror详解1 介绍2 安装使用2.1 安装 vue-codemirror2.2 使用 codemirror2.2.1 引入 3 配置详情3.1 语言模式配置3.2 自动高度设置3.4 主题配置 4 总结 vue2 导入使用vue-codemirror详解 1 介绍 vue-codemirror是一个基于Vue的代码在线编辑器组件&…

【jenkins】主从机制及添加Slave节点操作

一、master-slave 日常构建Jenkins任务中,会经常出现下面的情况: 自动化测试需要消耗大量的 CPU 和内存资源,如果服务器上还有其他的服务,可能会造成卡顿或者宕机这样的情况; Jenkins 平台上除了这个项目&#xff0c…

把成绩私发给家长

与家长保持及时、有效的沟通对于学生的成长至关重要。但有时候,我会选择将学生的成绩私发给家长,而不是在公共场合公布。这样做有以下几个原因。 保护学生的隐私。每个学生都拥有自己的个人信息,这包括学习成绩。在公共场合公布成绩&#xf…

Sqoop数据迁移工具

概述 Apache Sqoop(SQL-to-Hadoop)项目旨在协助RDBMS与Hadoop之间进行高效的大数据交流。用户可以在 Sqoop 的帮助下,轻松地把关系型数据库的数据导入到 Hadoop 与其相关的系统 (如HBase和Hive)中;同时也可以把数据从 Hadoop 系统…

【计算机二级考试C语言】C递归

目录 C 递归 数的阶乘 实例 斐波那契数列 实例 C 递归 递归指的是在函数的定义中使用函数自身的方法。 举个例子: 从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?"从…

都 2024 年了!程序员的到底出路在哪里!?继续卷技术?晋升管理层?还是转业?

都 2024 年了!程序员的到底出路在哪里!?继续卷技术?晋升管理层?还是转业? 1)程序员的难处2)程序员专业方向3)大数据3.1.大数据开发涉及到哪些技术3.2.大数据开发涉及到的…

VxTerm:SSH工具中的中文显示和乱码时的相关信息和一些基本的知识

当我们写的程序含有控制台(Console)输出时,如果输入内容包含中文时,我们一般需要知道下面的信息,才能正确的搞清楚怎么处理中文显示的问题: 1、实际程序或文件中的实际编码: Linux下的应用程序和文本文件,…

2024年最佳的免费UI设计工具推荐

随着用户界面设计行业的蓬勃发展,越来越多的设计师加入到用户界面设计中来。选择一个方便的用户界面设计工具尤为重要!除了传统的用户界面设计工具外,在线用户界面设计工具也受到越来越多设计师的青睐。这种不受时间、地点和计算机配置限制的…

centos7.6安装Docker详细步骤(无坑版教程)

一、安装前必读 在安装 Docker 之前,先说一下配置,我这里是Centos7 Linux 内核:官方建议 3.10 以上,3.8以上貌似也可。 注意:本文的命令使用的是 root 用户登录执行,不是 root 的话所有命令前面要加 sudo…

uniapp 使用canvas 画海报,有手粘贴即可用(拆成组件了,看后面)

1.直接使用 html部分 <view click"doposter">下载海报</view> <canvas canvas-id"myCanvas" type2d style"width: 370px; height: 550px;opcity:0;position: fixed;z-index:-1;" id"myCanvas" />js 部分 drawBac…

【数据结构】(三)树Tree

目录 1、基本概念 2、二叉树Binary Tree 3、树、森林与二叉树的转换 4、赫夫曼树Huffman Tree与赫夫曼编码Huffman Coding 1、基本概念 &#xff08;1&#xff09;树&#xff08;Tree&#xff09;是 n&#xff08;n ≥\geq 1&#xff09;个节点的有限集&#xff0c;n 0时称…

JavaScript基础(一)旧版基础笔记总结

开新藩&#xff08;虽然博主早以前已经学过了&#xff09;&#xff0c;从0开始复习JS&#xff0c;一方面应对毕设&#xff0c;一方面后期可能找找实习&#xff0c;一方面复试可能也会涉及到吧&#xff0c;说起这个最近越等越焦虑QAQ&#xff0c;还要一个月才出分呢...... 本帖先…
最新文章