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

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.mzph.cn/news/660747.shtml

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

相关文章

vivado 与系统设计师接口

与系统设计师接口 作为迭代I/O和时钟规划过程的一部分,您可以交换有关AMD设备通过导出CSV文件和IBIS模型,与PCB或系统设计者进行引脚连接。根据PCB或设计规范的变化,您可能需要将引脚重新导入为如定义和配置I/O端口中所述。完成I/O和时钟中的…

uniapp H5 px转换rpx

uniapp H5 px转换rpx 安装 px2rpx 重启 HBuilderX在要转换的文件 点击右键 点击 开启px2rpx(1px转成2rpx) 开启成功!使用 编辑页面后 按下键盘 Ctrl s 保存!转化成功!当然 你也需要对使用的插件 进行转换!否则可能导致样式出现…

排序之计数排序

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …

简述MinewSemi的GNSS模块引领体育与健康科技革新

体育与健康科技领域的创新一直在推动人们更健康、更活跃的生活方式。创新微公司的GNSS模块正成为这一变革的关键推动力。本文将深入研究MinewSemi的GNSS模块在体育和健康追踪领域的创新应用,探讨其如何帮助个体更全面地了解和改善自己的身体状态。 1. 个性化运动轨迹…

爬什么值得买的榜单——爬虫练习题目一(问)

爬虫题目你敢试试吗? 引言具体原因网站思路总体 我让AI给个框架1. **项目初始化与依赖安装**2. **定义数据模型**3. **网络请求模块**4. **页面解析模块**5. **数据存储模块**6. **主程序流程** 结尾 引言 最近在做什么呢 建立一套完整的信息输入输出系统 在我上一…

Vue之状态管理的简单使用(事件总线(Event Bus),Vuex和若依前端示例)

文章目录 Vue之状态管理的简单使用(事件总线(Event Bus),Vuex和若依前端示例)Vue之事件总线(Event Bus)的简单使用Vuex进行状态管理的简单使用若依前端代码store状态管理: Vue之状态…

云原生时代下,操作系统生态的挑战与机遇

在云计算快速发展的背景下,服务器操作系统的产业升级,不再局限于物理服务器层面,市场边界扩张,人工智能、大数据、云计算等新技术的发展也对操作系统的灵活度和智能化提出新的要求。在 2023 龙蜥操作系统大会上,龙蜥社…

pytorch学习笔记(十二)

以下代码是以CIFAR10这个10分类的图片数据集训练过程的完整的代码。 训练部分 train.py主要包含以下几个部件: 准备训练、测试数据集用DateLoader加载两个数据集,要设置好batchsize创建网络模型(具体模型在model.py中)设置损失函…

深入了解C++:底层编译原理

进程的虚拟空间划分 任何编程语言,都会产生两样东西,指令和数据。 .exe程序运行的时候会从磁盘被加载到内存中,但是不能直接加载到物理内存中。Linux会给当前进程分配一块空间,比如x86 32位linux环境下会给进程分配2^32(4G)大小…

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

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

(附源码)ssm 招聘信息管理系统-计算机毕设 78049

ssm 招聘客户管理系统 摘 要 由于数据库和数据仓库技术的快速发展,招聘客户管理系统建设越来越向模块化、智能化、自我服务和管理科学化的方向发展。招聘客户系统对处理对象和服务对象,自身的系统结构,处理能力,都将适应技术发展的…

脚本工具 mktemp 和 install

1.创建临时文件 mktemp 1.1 介绍 mktemp 命令用于创建并显示临时文件,可避免冲突 使用mktemp命令时,它会根据指定的模板在临时目录(默认为/tmp)中创建一个唯一的临时文件或目录,并返回该文件或目录的完整路径。临时…

在线UI设计工具有哪些?这5个包你满意

随着 UI 设计行业的蓬勃发展,越来越多的设计师进入 UI 设计,选择一款方便的 UI 设计工具尤为重要!除了传统的 UI 设计工具,在线 UI 设计工具也受到越来越多设计师的青睐。这种不受时间、地点和计算机配置限制的工作方法真的很刺激…

Python处理图片生成天际线(2024.1.29)

1、天际线简介 天际线(SkyLine)顾名思义就是天空与地面的边界线,人站在不同的高度,会看到不同的景色和地平线,天空与地面建筑物分离的标记线,不得不说,每天抬头仰望天空,相信大家都可…

屈子祠镇黑鱼岭,不可移动文物预防性保护系统守遗珍

一、何止秦俑 秦陵苑囿青铜水禽等文物集中展出 文物保护,尤其是不可移动文物的保护,一直都是文化遗产的重要环节。湖南省汨罗市屈子祠镇双楚村黑鱼岭墓地,作为长江中游地区的重大考古发现,其商朝晚期的历史背景赋予其不可估量的历…

响应式Web开发项目教程(HTML5+CSS3+Bootstrap)第2版 例5-6 绘制几何图形

代码 <!doctype html> <html> <head> <meta charset"utf-8"> <title>绘制几何图形</title> </head><body><canvas id"canvas" width"250" height"150" style"border: 1px b…

QUIC with CUBIC or BBR

拥塞控制 拥塞控制算法是 TCP/QUIC 协议的一个基础部分&#xff0c;多年来经过一个个版本的迭代&#xff08;如 Tahoe、Reno、Vegas 等&#xff09;&#xff0c;拥塞控制算法得到了持续的提升。由于篇幅有限&#xff0c;本文就目前比较流行的两种拥塞控制算法&#xff08;CUBI…

SVM支持向量机

1.基本概念 支持向量机&#xff08;Support Vector Machine&#xff0c;SVM&#xff09;是一种有监督学习方法&#xff0c;主要用于分类和回归分析。它的基本思想是在特征空间中找到一个超平面&#xff0c;能够将不同类别的样本分开&#xff0c;并且使得离这个超平面最近的样本…

sql注入,布尔盲注和时间盲注,无回显

布尔盲注 通过order by分组可以看到&#xff0c;如果正确会i显示you are in&#xff0c;错误则无任何提示&#xff0c;由此可以判断出&#xff0c;目前只显示对错&#xff0c;此外前端不会显示任何数据 也就是说&#xff0c;目前结果只有两种&#xff0c;在这种只有两种变量的…

Uniapp登录页面获取头像、昵称的最新方法的简单使用

前言 写小程序写到登录页面的时候&#xff0c;发现官方文档中原来的wx.getUserInfo和wx.getUserProfile不太能用了&#xff0c;学习了相对比较新的方法&#xff0c;这种方法的文档链接如下&#xff1a; https://developers.weixin.qq.com/miniprogram/dev/framework/open-abil…