进阶——第十六届蓝桥杯嵌入式熟练度练习(开发板捕获频率和占空比)
单通道捕获频率
HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_1);HAL_TIM_IC_Start_IT(&htim3,TIM_CHANNEL_1);
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{if(htim->Instance==TIM2)
{cap1=HAL_TIM_ReadCapturedValue(&htim2,TIM_CHANNEL_1);TIM2->CNT=0;R40_frq=80000000/80/cap1;HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_1);
}
if(htim->Instance==TIM3)
{cap2=HAL_TIM_ReadCapturedValue(&htim3,TIM_CHANNEL_1);TIM3->CNT=0;R39_frq=80000000/80/cap2;HAL_TIM_IC_Start_IT(&htim3,TIM_CHANNEL_1);
}}
双通道捕获下降沿
uint32_t cap1_2,cap2_2,R39_duty,R40_duty;
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{
if(htim->Instance==TIM2)
{ if(htim->Channel==HAL_TIM_ACTIVE_CHANNEL_1){cap1=HAL_TIM_ReadCapturedValue(&htim2,TIM_CHANNEL_1);cap1_2=HAL_TIM_ReadCapturedValue(&htim2,TIM_CHANNEL_2);TIM2->CNT=0;R40_frq=80000000/80/cap1;R40_duty=(1.0*cap1_2)/(1.0*cap1)*100;HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_1);HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_2);}
}
if(htim->Instance==TIM3)
{ if(htim->Channel==HAL_TIM_ACTIVE_CHANNEL_1){cap2=HAL_TIM_ReadCapturedValue(&htim3,TIM_CHANNEL_1);cap2_2=HAL_TIM_ReadCapturedValue(&htim3,TIM_CHANNEL_2);TIM3->CNT=0;R39_frq=80000000/80/cap2;R39_duty=(1.0*cap2_2)/(1.0*cap2)*100;HAL_TIM_IC_Start_IT(&htim3,TIM_CHANNEL_1);HAL_TIM_IC_Start_IT(&htim3,TIM_CHANNEL_2);}
}
}
为什么要使用 (1.0 * cap2_2) / (1.0 * cap2) * 100;
不使用 1.0 时,由于 cap2_2 / cap2 是整数除法,结果为 0,最终得到的占空比也是 0;
当使用 1.0 时,计算表达式变为 (1.0 * cap2_2) / (1.0 * cap2) * 100。1.0 是一个浮点数常量,在 C 语言里,当一个整数和一个浮点数进行运算时,整数会被隐式地转换为浮点数类型,然后进行浮点数运算。
在 1.0 * cap2_2 中,cap2_2 是整数,1.0 是浮点数,所以 cap2_2 会被转换为浮点数,运算结果是一个浮点数;同理,1.0 * cap2 的结果也是浮点数。这样一来,(1.0 * cap2_2) / (1.0 * cap2) 就变成了浮点数除法。
浮点数除法会保留小数部分,对于 cap2 = 10 和 cap2_2 = 3 的情况,(1.0 * 3) / (1.0 * 10) 就是 3.0 / 10.0,结果是 0.3。最后再将这个结果乘以 100,就得到了准确的占空比 30.00%。
相关文章:
进阶——第十六届蓝桥杯嵌入式熟练度练习(开发板捕获频率和占空比)
单通道捕获频率 HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_1);HAL_TIM_IC_Start_IT(&htim3,TIM_CHANNEL_1); void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) {if(htim->InstanceTIM2) {cap1HAL_TIM_ReadCapturedValue(&htim2,TIM_CHANNEL_1);TIM2-&…...
智能协同:数据集成平台与DeepSeek驱动的数据分析与智能调度革新
前言 企业面临着海量数据的挑战与机遇。如何高效地整合多源数据、精准分析并智能决策,成为企业提升竞争力的关键。本文解析轻易云数据集成平台与DeepSeek技术结合在数据分析和智能调度方面的创新应用,揭示其为企业带来的高效、智能与精准的业务价值。 …...
Mybatis高级(动态SQL)
目录 一、动态SQL 1.1 数据准备: 1.2 <if>标签 1.3<trim> 标签 1.4<where>标签 1.5<set>标签 1.6 <foreach>标签 1.7<include> 标签 一、动态SQL 动态SQL是Mybatis的强⼤特性之⼀,能够完成不同条件下不同…...
申论对策建议类【2022江苏B卷第一题“如何开展网络直播”】
材料: 近年来,公安交管部门通过网络直播,将执法过程和执法细节以视频形式呈现在公众面前,吸引“围观”、组织点评,让执法过程变成一堂生动的法治公开课。 “各位网友,大家好!这里是‘全国交通…...
蓝耘智算携手DeepSeek,共创AI未来
🌟 各位看官号,我是egoist2023! 🌍 种一棵树最好是十年前,其次是现在! 🚀 今天来学习如何通过蓝耘智算使用DeepSeek R1模型 👍 如果觉得这篇文章有帮助,欢迎您一键三连&a…...
FFmpeg源码:url_find_protocol函数分析
一、url_find_protocol函数的定义 url_find_protocol函数定义在FFmpeg源码(本文演示用的FFmpeg源码版本为7.0.1)的源文件libavformat/avio.c中: static const struct URLProtocol *url_find_protocol(const char *filename) {const URLProt…...
3D与2D机器视觉机械臂引导的区别
3D与2D机器视觉在机械臂引导中的主要区别如下: 数据维度 2D视觉:仅处理平面图像,提供X、Y坐标信息,无法获取深度(Z轴)数据。 3D视觉:处理三维空间数据,提供X、Y、Z坐标及物体的姿态…...
C# 添加图标
一、前言 为应用程序添加图标是优化用户界面、提升应用辨识度的重要操作。合适的图标能帮助用户快速识别和区分不同应用,增强应用的易用性和专业性。 本指南旨在为你提供详细、易懂的步骤,教你如何为应用程序的窗体添加图标。从图标素材的获取到具体的…...
基于 Python 和 Django 的北极星招聘数据可视化系统(附源码,部署)
博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...
基于STM32、HAL库、MB85RC16PNF(I2C接口)驱动程序设计
一、概述: MB85RC16PNF 是富士通推出的16Kbit(2K x 8位)FRAM(铁电随机存取存储器),具有非易失性、高读写速度和低功耗特性,常用于数据存储。 二、硬件连接: MB85RC16PNF通过I2C接口与STM32L4XX通信,典型连接如下: VDD:3.3V VSS:GND SDA:I2C数据线 SCL:I2C时钟线…...
【产品推介】可驱动5A负载的降压型DC/DC转换器XBL1663
一、产品简介 采用ESOP-8封装的XBL1663最大可输出5A电流 芯伯乐XBL1663是一款专为降压型DC/DC转换器设计的单片集成电路,具有高转换效率、恒定开关频率工作的特点。内置功率 MOSFET可在 4.5 V-40V 输入电源上实现 5A 峰值输出电流,并具有出色的负载和线…...
20.【线性代数】——坐标系中,平行四边形面积=矩阵的行列式
三 坐标系中,平行四边形面积矩阵的行列式 定理验证 定理 在坐标系中,由向量(a,b)和向量(c,d)组成平行四边形的面积 矩阵 [ a b c d ] \begin{bmatrix} a&b\\ c&d \end{bmatrix} [acbd]的行列式,即&#x…...
数据库知识速记:事物隔离级别
数据库知识速记:事物隔离级别 一、什么是事物隔离级别? 事物隔离级别(Transaction Isolation Levels)指的是在数据库管理系统中,不同事物之间在访问共享数据时的隔离程度。隔离级别不仅影响数据的读取和写入行为&…...
重构测试项目为spring+springMVC+Mybatis框架
重构测试项目为springspringMVCMybatis框架 背景 继上次将自动化测试时的医药管理信息系统项目用idea运行成功后,由于项目结构有些乱,一部分代码好像也重复,于是打算重新重构以下该项目,这次先使用springspringMVCMybatis框架 …...
如何使用OPENAI的Whisper功能进行音频字母提取功能
首先你可以使用 Python 中的 requests 库来下载该音频文件,然后通过 open() 打开该文件并传递给 OpenAI Whisper API。 完整代码如下: 安装需要的库: pip install openai requests Python 代码: OPENAI_API_KEY "your o…...
DFS算法篇:理解递归,熟悉递归,成为递归
1.DFS原理 那么dfs就是大家熟知的一个深度优先搜索,那么听起来很高大尚的一个名字,但是实际上dfs的本质就是一个递归,而且是一个带路径的递归,那么递归大家一定很熟悉了,大学c语言课程里面就介绍过递归,我…...
2025java常见面试题第一弹
1. Java中的HashMap和Hashtable有什么区别? 答案: 线程安全性: HashMap是线程不安全的,适合单线程环境。如果在多线程环境下使用,可能会出现数据不一致的问题。 Hashtable是线程安全的,内部方法通过synch…...
JMeter工具介绍、元件和组件的介绍
Jmeter功能概要 JDK常用文件目录介绍 Bin目录:存放可执行文件和配置文件 Docs目录:是Jmeter的API文档,用于开发扩展组件 printable_docs目录:用户帮助手册 lib目录:存放JMeter依赖的jar包和用户扩展所依赖的Jar包…...
机舱卫生和空气质量改善
公共卫生挑战:在密闭空间内控制病原体 由于公共交通等密闭空间内的人员密度很高,因此保持良好的空气质量至关重要。有效的通风系统在循环新鲜空气和降低空气中病原体和污染物的浓度方面起着关键作用。使用高效微粒空气 (HEPA) 过滤…...
springBoot之环境变量
springboot 在new SpringBootApplication()时, 会扫描所有的spring.factory; 它会给每个接口当做group,所有实现类为List当做value,形成map; group -> List 系统属性 java的相关属性 系统环境属性,指的是操作系统相关的配置 每个配置对应一个contro…...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
