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

news2024/11/28 6:32:35

下面三个模块,一个比一个高级,当然使用是越来越简单
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.coloradmin.cn/o/1425554.html

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

相关文章

Nginx简单阐述及安装配置

目录 一.什么是Nginx 二.Nginx优缺点 1.优点 2.缺点 三.正向代理与反向代理 1.正向代理 2.反向代理 四.安装配置 1.添加Nginx官方yum源 2.使用yum安装Nginx 3.配置防火墙 4.启动后效果 一.什么是Nginx Nginx(“engine x”)是一个高性能的HTTP…

【百度Apollo】探索创新之路:深入了解Apollo开放平台

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《linux深造日志》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! ⛳️ 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下…

vue3页面跳转产生白屏,刷新后能正常展示的解决方案

可以依次检查以下问题: 1.是否在根组件标签最外层包含了个最大的div盒子包裹内容。 2.看看是否在template标签下面直接有注释,如果有需要把注释写到div里面。(即根标签下不要直接有注释) 3.在router-view 中给路由添加key标识。 …

通过Netbackup恢复Oracle备份实操手册

1、系统环境描述 1 2、恢复前数据备份 2 2.1 在NBU上执行一次完整的备份 2 2.2 查看ORACLE的备份集 3 2.2.1在备份客户端上查看备份集 3 2.2.2在备份服务器netbackup上查看客户端备份集 4 3、本机恢复方法 5 3.1丢失SPFILE文件恢复方法 5 3.2丢失CONTROLFILE文件恢复方…

【Week-P7】VGG16识别咖啡豆

Week-P7 VGG16识别咖啡豆 一、环境配置二、准备数据三、搭建网络结构 VGG16四、开始训练五、查看训练结果六、改变优化器,VSCode运行 🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项…

AI工具【OCR 01】Java可使用的OCR工具Tess4J使用举例(身份证信息识别核心代码及信息提取方法分享)

Java可使用的OCR工具Tess4J使用举例 1.简介1.1 简单介绍1.2 官方说明 2.使用举例2.1 依赖及语言数据包2.2 核心代码2.3 识别身份证信息2.3.1 核心代码2.3.2 截取指定字符2.3.3 去掉字符串里的非中文字符2.3.4 提取出生日期(待优化)2.3.5 实测 3.总结 1.简…

阿里云AI通义千问出bug,解决不了直接弃,开始对国产AI由支持变失望

AI怀疑人生 引言对比出大问题思考尝试解决代码结尾 引言 今天的第二篇 原本是想写这个爬取什么值得买 延续零基础爬什么值得买的榜单——爬虫练习题目一(答一) 但没想到 这个阿里云的AI 通义千问 删了我很多的对话 也就是说 我之前一直提问的AI角色没了…

VxTerm:C++ MFC,在工具栏中增加Edit/ComboBox等组件,打造一个地址栏/搜索栏功能

VxTerm软件可以在本站链接下载:唯一国产化SSH工具下载,单文件纯绿色不需要安装,替代SecureCRT 在软件的主界面中,增加了一个地址栏功能。 本人的文章内容都是经本人亲自实现并验证成功的干货,关注我,互相交…

代理模式详解(重点解析JDK动态代理)

- 定义 在解析动态代理模式之前,先简单看下整个代理模式。代理模式分为普通代理、强制模式、动态代理模式。其中动态代理模式主要实现方式为Java JDK提供的JDK动态代理,第三方类库提供的,例如CGLIB动态代理。 代理模式就是为其他对象提供一种…

【百度Apollo】自动驾驶规划技术:实现安全高效的智能驾驶

🎬 鸽芷咕:个人主页 🔥 个人专栏:《linux深造日志》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! ⛳️ 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下…

与数组相关经典面试题

𝙉𝙞𝙘𝙚!!👏🏻‧✧̣̥̇‧✦👏🏻‧✧̣̥̇‧✦ 👏🏻‧✧̣̥̇:Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - :来于“云”的“羽球人”。…

安卓网格布局GridLayout

<?xml version"1.0" encoding"utf-8"?> <GridLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"android:layout_width"match_parent"android:la…

C#用正则表达式Regex.Matches 方法检查字符串中重复出现的词

目录 一、Regex.Matches 方法 1.重载 二、Matches(String, String, RegexOptions, TimeSpan) 1.定义 2.示例 三、Matches(String, String, RegexOptions) 1.定义 2.示例 3.示例&#xff1a;用正则表达式检查字符串中重复出现的词 四、Matches(String, Int32) 1.定义…

Docker容器化安装SonarQube9.9

文章目录 1.环境准备1.1 版本信息1.2 系统设置 2.Docker环境安装2.1 卸载旧版本2.2 设置源2.3 安装Docker2.4 设置阿里仓库2.5 启动Docker 3.Docker Compose4.登录4.1 首页4.2 安装插件 5.制作镜像离线安装 1.环境准备 1.1 版本信息 名称版本备注Docker25.0.1当前2024-01-01最…

【设计模式】六大原则详解,每个原则提供代码示例

设计模式六大原则 目录 一、单一职责原则——SRP 1、作用2、基本要点3、举例 二、开放封闭原则——OCP 1、作用2、基本要点3、举例 三、里氏替换原则——LSP 1、作用2、基本要点3、举例 四、依赖倒置原则——DLP 1、作用2、基本要点3、举例 五、迪米特法则——LoD 1、作用2、…

Arcgis10.3安装

所需软件地址 链接&#xff1a;https://pan.baidu.com/s/1aAykUDjkaXjdwFjDvAR83Q?pwdbs2i 提取码&#xff1a;bs2i 1、安装License Manager 点击License Manager.exe&#xff0c;默认下一步。 安装完&#xff0c;点击License Server Administrator&#xff0c;停止服务。…

Java基础 集合(二)List详解

目录 简介 数组与集合的区别如下&#xff1a; 介绍 AbstractList 和 AbstractSequentialList Vector 替代方案 Stack ArrayList LinkedList 前言-与正文无关 生活远不止眼前的苦劳与奔波&#xff0c;它还充满了无数值得我们去体验和珍惜的美好事物。在这个快节奏的世界…

IT行业中最重要的证书

在IT行业&#xff0c;拥有一些含金量较高的证书是职业发展的关键。这些证书不仅可以证明技能水平&#xff0c;还有助于提升在职场上的竞争力。本文将介绍几个IT行业中最重要的证书。 1. Cisco认证 CCNA&#xff08;Cisco Certified Network Associate&#xff09;是Cisco公司新…

ArcGIS学习(二)属性表的基本操作

ArcGIS学习(二)属性表的基本操作 1.查看属性表 ArcGIS是处理空间数据的平台。对于空间数据,大家可以理解成它是由两个部分构成:1.一个是空间形体,也就是点、线、面三种。线又可以分为直线、曲线,面又分为圆形、正方形、不规则形体等;2.另外一个部分是空间形体所附带的…

【深蓝学院】移动机器人运动规划--第3章 基于采样的路径规划--笔记

0. Preliminaries 做规划都是将WS转到C space下进行。 找到可行解和最优解&#xff08;这两个不同&#xff09; 通过增量或者批次地在C-space中采样来增量式地构建树或者图。 不显式地构造 如果把整个规划问题看成一个大的优化问题&#xff0c;那么大问题可以拆分成小问题进行…