蓝桥杯嵌入式——测量两路PWM频率和占空比

原理:在通道1,TIM_CH1上会输入PWM波,在每个上升沿来的时候会发生三个动作,第一个动作会触发一个中断,第二个动作会把CNT计数值捕获,第三个动作会把CNT的值清0,

要测量占空比则需要打开TI1FP2,通道2,这样当第一次下降沿触发时通道二的捕获寄存器就会记录此时的计数值

①当第一个上升沿产生时,产生中断,捕获CNT的值存入通道1捕获寄存器,接着清零CNT值

②产生第一个下降沿,产生中断,捕获CNT的值存入通道2捕获寄存器

③产生第二个上升沿,产生中断,捕获CNT的值存入通道1捕获寄存器,清零CNT的值

STM32CubeMX配置生成源码

TIM2和TIM3通道2设置成交叉模式,下降沿触发,非直连

直连与非直连的区别

生成源代码

Keil主代码编写

把TIM2和TIM3的初始化配置重新粘贴

启用定时器捕获通道二

创建变量PWM1_D_Count和PWM2_D_Count用来存放两个定时器通道2下降沿捕获到的数值

如下图所示为输入捕获回调函数,

创建变量PWM_duty用来存放占空比的值(浮点型)

在回调函数中读取通道2下降沿触发时捕获到的计数值

通过公式计算:占空比=周期/高电平持续时间

               PWM1_duty = (float)PWM1_D_Count/ (float)PWM1_T_Count;(注意要转换为浮点型)

LCD显示(保留小数点后两位,最后测得占空比的值在0.5左右为正常)

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

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

相关文章

经济学基础入门,从《小岛经济学》看经济的演变

一直在学习怎么赚钱,没有专业的人指导。于是就想着先学习一下经济学相关的知识吧!无意间看到大家推荐的这本书籍,一本很适合经济学入门的经济《小岛经济学》,这本书以故事的方式,讲解了经济演变过程。而且大约只需要2到…

对嵌入式系统、GCC、的理解

1、嵌入式系统通用硬件组成 2、Linux系统的嵌入式的开发流程 3、Linux系统的嵌入式的结构 4、文件IO和标准IO? 5、为什么需要交叉编译 1、嵌入式系统硬件的限制(CPU处理能力不如电脑、存储空间小、网络带宽小不利于传输、安全性不如电脑、能耗问题&…

关于GitHub国内打不开的有效解决办法

哈喽大家好,我是咕噜美乐蒂,很高兴又见面啦! GitHub是全球最大的开源代码托管平台之一,但由于某些原因,它在中国大陆地区经常会遭受网络封锁,导致无法正常访问。如果您也遇到了这个问题,不要担…

【计算机网络】——TCP协议

📑前言 本文主要是【计算机网络】——传输层TCP协议的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 🌄每日一句…

前端面试题-说说你了解的js数据结构?(2024.1.29)

1、数组 (Array) 数组是一组有序的值的集合,可以通过索引访问。JavaScript 数组可以包含不同的数据类型,并且长度是动态的。 let myArray [1, hello, true, [2, 3]];2、对象 (Object) 对象是无序的键值对的集合。每个键都是字符串或符号,…

安全刷写简单说明

文章目录 1.安全刷写的目的2.安全刷写的实现3.安全刷写的要求4.签名说明5.刷写过程 1.安全刷写的目的 为了避免ECU被恶意篡改数据,从而导致ECU功能失效。 2.安全刷写的实现 目前很多厂商会使对软件进行签名操作,从一定程度上实现安全刷写的目的。 3.…

【学网攻】 第(16)节 -- 扩展ACL访问控制列表

系列文章目录 目录 系列文章目录 文章目录 前言 一、ACL(访问控制列表)是什么 ? 二、实验 1.引入 实验目标 实验步骤 实验设备 实验拓扑图 实验配置 配置ACL访问控制 实验验证 总结 文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻】 第(2)节 -- 交换机认识…

2024 年, Web 前端开发趋势

希腊哲学家赫拉克利特认为,变化是生命中唯一不变的东西。这句话适用于我们的个人生活、行业和职业领域。 尤其是前端开发领域,新技术、开发趋势、库和框架不断涌现,变化并不陌生。最近发生的一些事件正在改变开发人员构建网站和 Web 应用的方…

FPS游戏框架漫谈第七条

小地图制作流程漫谈: 1.由于场景导出地图顶视图结构给原画 2.原画会对其进行加工处理 3.经过原画处理后的资源给到还原,还原合入游戏内 4.拿的的资源一般是256256 5.场景需要提供一些采样参数给程序 一般3组即可 每组参数是场景中的坐标和顶视图中屏幕坐…

Python机器学习--简单清晰的说说K近邻算法的基本原理

K近邻算法的基本原理:首先通过所有的特征变量构筑起一个特征空间,特征空间的维数就是特征变量的个数,然后针对某个测试样本,按照参数K在特征空间内寻找与它最为近邻的K个训练样本观测值,最后依据这K个训练样本的响应变…

Codeforces Round 871

目录 A. Love Story B. Blank Space C. Mr. Perfectly Fine D. Gold Rush E. The Lakes F. Forever Winter G. Hits Different H. Don’t Blame Me A. Love Story 直接逐个匹配 string a"codeforces"; void solve() {string s; cin>>s;int cnt0;for(i…

快速理解MoE模型

最近由于一些开源MoE模型的出现,带火了开源社区,为何?因为它开源了最有名气的GPT4的模型结构(OPEN AI),GPT4为何那么强大呢?看看MoE模型的你就知道了。 MoE模型结构: 图中&#xff0…

Netty-ChannelHandle的业务处理

ChannelHandle结构 ChannelHandler基础接口 基础接口里面定义的基础通用方法。增加handler,移除handler,异常处理。 ChannelInboundHandler public interface ChannelInboundHandler extends ChannelHandler {/*** The {link Channel} of the {link Ch…

猫突然不吃东西没精神?性价比高可以迅速恢复精神的生骨肉冻干推荐

猫突然不吃东西没精神怎么办?当猫咪不吃东西、精神不振时,可能是由于健康问题、环境因素或食物原因所引起。首先应进行身体检查,观察是否有其他并发症,如无则可排除健康问题。为猫咪提供安全舒适的环境、给予关爱,可改…

亚信安慧AntDB:AntDB-M元数据锁(七)

5.4.5 慢路径锁的授予条件 当且仅当满足如下两个条件时,才可以授予锁。 1. 其他线程没有持有不兼容类型锁。 2. 当前申请的锁的优先级高于请求等待列表中的。 首先通过锁位图判断等待队列,不兼容则不能授予锁。再判断快速路径,不兼容则不…

win11下 “pytorch导出模型“ 以及 “C++使用onnxruntime部署”

部分一:PyTorch导出模型 在Win11下,PyTorch是一个强大的深度学习框架,它提供了丰富的工具来训练和导出模型。在这一部分,我们将使用鸢尾花数据集,演示如何在PyTorch中训练一个简单的模型,并将其导出为ONNX…

改变this指针的三个方法?

要改变 this 的指向,JavaScript 提供了一系列的方法: call(): 使用 call() 可以直接改变 this 的指向。它接受两个参数:第一个是要调用的目标函数,第二个是将作为 this 的值的对象或对象引用的数组。例如&#xff0c…

protobuf-go pragma.go 文件介绍

pragma.go 文件 文件位于: https://github.com/protocolbuffers/protobuf-go/blob/master/internal/pragma/pragma.go 该文件核心思想: 利用 Golang 语法机制,扩展 Golang 语言特性 目前,该文件提供以下 4 个功能: …

C++STL模板库

类&#xff1a; pair: 头文件&#xff1a;<utility> 定义&#xff1a; 是一个标准库类型。可以看作是有两个成员变量first和second的结构体&#xff0c;并且重载了<运算符(先比较first大小&#xff0c;再比较second大小)当我们创建一个pair时&#xff0c;必须提供两…

SQLite 简介

什么是SQLite&#xff1f; SQLite是一个轻量级的嵌入式关系型数据库&#xff0c;它以一个小型的C语言库的形式存在。它的设计目标是嵌入式的&#xff0c;而且已经在很多嵌入式产品中使用了它&#xff0c;它占用资源非常的低&#xff0c;在嵌入式设备中&#xff0c;可能只需要几…