信息发布b2b电子商务平台/seo实战密码第三版pdf下载
上一篇博客我们提到了定时器产生PWM波,现在,我们尝试的想要捕获我们的PWM波,测量它的频率,我们应该怎么做呢?答案还是回到我们的定时器上。
我们知道,定时器是一个高级的秒表(参考笔者的比喻:备考蓝桥杯嵌入式3:产生PWM波-CSDN博客),它可以根据我们的设置向主处理器发送中断,所以,我们的一个测量办法就是,捕获其中的上升沿(或者是下降沿,两次上升沿的间隔就是我们的方波周期),如何知道上升沿或者是下降沿到来呢?答案是使用中断,我们将上升沿捕获进来,度量其中的CNT变化了多少,这个时候,我们就获得了相对于自身的频率,我们的PWM方波的频率是自身工作的频率的倍数。
我们让自身的CNT为0,再下一次捕获的时候得到CNT减去0就是CNT个度量的单位时间,其中,单位的度量时间笔者上一篇博客已经给出,这里不再给定,最终的结果就是
这里笔者建议进行预分频,因为我们需要保证我们的计次不会击穿我们的接受CNT的值的变量范围,否则就会出错。
代码实战
笔者以PA7作为捕获,来接受上一博客中笔者设置的PA1引脚产生的PWM波形。办法是配置PA7为输入捕获模式,且设置分频为80。
其他的部分可以不设置。我们采取的是上升沿的捕获!记得使能一下定时器的中断!我们生成MDK5工程,下一步就是我们来看看,如何完成软件的部分。
显然,我们的时钟输入捕获需要按照使能中断的方式进行开启:
HAL_TIM_IC_Start_IT(&htim17, TIM_CHANNEL_1);
重要的是,我们需要捕获我们的上升沿,其回调函数是:
uint32_t frequency, capture_value;
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{if(htim->Instance == TIM17){capture_value = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1);TIM17->CNT = 0;frequency = HAL_RCC_GetSysClockFreq()/((htim->Init.Prescaler + 1) * capture_value);}
}
我们按照管理获取我们的捕获值,当然,如果要追求迅速,可以直接将htim->Instance->CCR1
抓出来赋值,来进行加速。笔者的建议是不要这样,除非有明显的效率提升,否则可读性不好。
我们在主循环中,调用一个时时刻刻进行刷新的display函数
char value[20];
void display_current_captured_freq(void)
{snprintf(value, 20, "frequency:%d", frequency);lcd_middledisplay(Line0, value);
}
关于LCD的使用和笔者进行的小幅度的修改,参考笔者的博客:备考蓝桥杯嵌入式2:使用LCD完成显示-CSDN博客
现在我们将PA7和PA1使用杜邦线或者是导线连接。再将我们的代码上传上去。笔者采用的是1000HZ的PWM方波,这里的显示稍有误差:
相关文章:

备考蓝桥杯嵌入式4:使用LCD显示我们捕捉的PWM波
上一篇博客我们提到了定时器产生PWM波,现在,我们尝试的想要捕获我们的PWM波,测量它的频率,我们应该怎么做呢?答案还是回到我们的定时器上。 我们知道,定时器是一个高级的秒表(参考笔者的比喻&a…...

智能化转型2.0:从“工具应用”到“价值重构”
过去几年,“智能化”从一个模糊的概念逐渐成为企业发展的核心议题。2024年,随着生成式AI、大模型、智能体等技术的爆发式落地,中国企业正式迈入智能化转型的2.0时代。这一阶段的核心特征是从单一场景的“工具应用”转向全链条的“价值重构”&…...

机器学习之数学基础:线性代数、微积分、概率论 | PyTorch 深度学习实战
前一篇文章,使用线性回归模型逼近目标模型 | PyTorch 深度学习实战 本系列文章 GitHub Repo: https://github.com/hailiang-wang/pytorch-get-started 本篇文章内容来自于 强化学习必修课:引领人工智能新时代【梗直哥瞿炜】 线性代数、微积分、概率论 …...

9.PPT:儿童孤独症介绍【22】
目录 NO12345 NO6789 NO12345 1-3张素材.txt中的大纲→素材文档PPT.pptx设计→主题→积分字体:幻灯片母版在幻灯片母版右上角的相同位置插入任一剪贴画,改变该剪贴画的图片样式、为其重新着色,并使其不遮挡其他文本或对象 开始→版式动画…...

离散浣熊优化算法(DCOA)求解大规模旅行商问题(Large-Scale Traveling Salesman Problem,LTSP),MATLAB代码
大规模旅行商问题(Large-Scale Traveling Salesman Problem,LTSP)是经典旅行商问题(TSP)在规模上的扩展,是一个具有重要理论和实际意义的组合优化问题: 一、问题定义 给定一组城市和它们之间的…...

Java 引入和使用jcharset,支持UTF-7字符集
一、背景说明 Java标准库不直接支持UTF-7字符集,但通过我们可以使用第三方库jcharset方便地处理UTF-7编码的数据。 二、引入说明 JDK8及以下版本,我们将jcharset.jar并将其放到${JAVA_HOME}/jre/lib/ext/下即可完成引入。 JDK17及以后版本,对…...

rust安装笔记
安装笔记 安装加速cargo 国内源nightly版本安装其他目标将现有项目迁移到新版本升级 安装加速 export RUSTUP_UPDATE_ROOT"https://mirrors.ustc.edu.cn/rust-static/rustup" export RUSTUP_DIST_SERVERhttps://mirrors.tuna.tsinghua.edu.cn/rustup curl --proto h…...

扣子平台的选择器节点:让智能体开发更简单,扣子免费系列教程(17)
欢迎来到涛涛聊AI。今天,我们来聊聊一个非常实用的工具——扣子平台的选择器节点。即使你不是计算机专业人员,但对计算机操作比较熟悉,这篇文章也能帮你快速上手。我们会从基础知识讲起,一步步带你了解选择器节点的使用方法和应用…...

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_sprintf_num 函数
ngx_sprintf_num 声明就在 ngx_string.c 的开头 static u_char *ngx_sprintf_num(u_char *buf, u_char *last, uint64_t ui64,u_char zero, ngx_uint_t hexadecimal, ngx_uint_t width); ngx_sprintf_num 实现 static u_char * ngx_sprintf_num(u_char *buf, u_char *last,…...

Vue的状态管理:用响应式 API 做简单状态管理、状态管理库(Pinia )
文章目录 引言单向数据流多个组件共享一个共同的状态I 用响应式 API 做简单状态管理使用 reactive()创建一个在多个组件实例间共享的响应式对象使用ref()返回一个全局状态II 状态管理库Pinia枚举状态管理引言 单向数据流 每一个 Vue 组件实例都在“管理”它自己的响应式状态了…...

AI工具如何辅助写文章(科研版)
文章总览:[YuanDaiMa2048博客文章总览](https://blog.csdn.net/2301_79288416/article/details/137397359?spm=1001.2014.3001.5501)https://blog.csdn.net/2301_79288416/article/details/137397359?spm=1001.2014.3001.5501 在科研领域,撰写论文是一个复杂且耗时的过程。…...

LEED绿色建筑认证的重要意义
LEED(Leadership in Energy and Environmental Design)绿色建筑认证由美国绿色建筑委员会(USGBC)开发,是全球广泛认可的绿色建筑评估体系。其重要意义体现在以下几个方面: 1. 环境保护 资源节约࿱…...

阿里云 ubuntu22.04 中国区节点安装 Docker
下面是一份在 Ubuntu 22.04 (Jammy) 上,通过阿里云镜像源来安装并配置 Docker 的详细步骤示例,可在中国区阿里云节点使用: 一、卸载旧版本 (如已安装) 如果系统中已经安装了旧版 Docker (可能是 docker、docker-engine、docker.io、containe…...

【kafka的零拷贝原理】
kafka的零拷贝原理 一、零拷贝技术概述二、Kafka中的零拷贝原理三、零拷贝技术的优势四、零拷贝技术的实现细节五、注意事项一、零拷贝技术概述 零拷贝(Zero-Copy)是一种减少数据拷贝次数,提高数据传输效率的技术。 在传统的数据传输过程中,数据需要在用户态和内核态之间…...

Linux环境部署DeepSeek大模型
一、背景 【DeepSeek 深度求索】这个春节给了世界一个重磅炸弹,弄得美国都睡不好觉。这次与以往不同,之前我们都是跟随着美国的AI人工智能,现在DeepSeek通过算法上的优化,大大降低了训练模型所需的成本以及时间,短期造…...

React中key值的正确使用指南:为什么需要它以及如何选择
React中key值的正确使用指南:为什么需要它以及如何选择 一、key值的基本概念二、如何选择合适的key值1. 数据来源决定key策略2. key值的三大核心要求 三、React为何需要key值?1. 虚拟DOM优化机制2. 状态维护机制 四、常见误区及解决方案1. 索引作为key的…...

21.2.1 基本操作
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 Excel的基本操作步骤: 1、打开Excel:定义了一个Application对象: Microsoft.Office.Interop.E…...

车载以太网__传输层
车载以太网中,传输层和实际用的互联网相差无几。本篇文章对传输层中的IP进行介绍 目录 什么是IP? IP和MAC的关系 IP地址分类 私有IP NAT DHCP 为什么要防火墙穿透? 广播 本地广播 直接广播 本地广播VS直接广播 组播 …...

简单本地部署deepseek(软件版)
Download Ollama on Windows 下载 下载安装 winr 输入 cmd 然后输入ollama -v,出现ollama版本,安装成功 deepseek-r1 选择1.5b 输入 cmd 下面代码 ollama run deepseek-r1:1.5b 删除deepseek的代码如下: ollama rm deepseek-r1:1.5b 使用…...

AI绘画:解锁商业设计新宇宙(6/10)
1.AI 绘画:商业领域的潜力新星 近年来,AI 绘画技术以惊人的速度发展,从最初简单的图像生成,逐渐演变为能够创造出高度逼真、富有创意的艺术作品。随着深度学习算法的不断优化,AI 绘画工具如 Midjourney、Stable Diffu…...

20250202在Ubuntu22.04下使用Guvcview录像的时候降噪
20250202在Ubuntu22.04下使用Guvcview录像的时候降噪 2025/2/2 21:25 声卡:笔记本电脑的摄像头自带的【USB接口的】麦克风。没有外接3.5mm接口的耳机。 缘起:在安装Ubuntu18.04/20.04系统的笔记本电脑中直接使用Guvcview录像的时候底噪很大! …...

cors跨域是如何做的?
CORS 跨域资源共享详解 什么是 CORS? CORS(Cross-Origin Resource Sharing)是一种机制,允许浏览器向不同源的服务器发出请求,从而实现跨域资源共享。默认情况下,浏览器出于安全考虑,禁止跨域请求。这意味着,当一个网页尝试从不同的域名、协议或端口加载资源时,浏览器…...

系统通解:超多视角理解
在科学研究和工程应用中,我们常常面临各种复杂系统,需要精确描述其行为和变化规律。从物理世界的运动现象,到化学反应的进程,再到材料在受力时的响应,这些系统的行为往往由一系列数学方程来刻画。通解,正是…...

最大矩阵的和
最大矩阵的和 真题目录: 点击去查看 E 卷 100分题型 题目描述 给定一个二维整数矩阵,要在这个矩阵中选出一个子矩阵,使得这个子矩阵内所有的数字和尽量大,我们把这个子矩阵称为和最大子矩阵,子矩阵的选取原则是原矩阵中一块相互…...

深度学习 | 表示学习 | 卷积神经网络 | Batch Normalization 在 CNN 中的示例 | 20
如是我闻: 让我们来用一个具体的例子说明 Batch Normalization 在 CNN 里的计算过程,特别是如何对每个通道(channel)进行归一化。 1. 假设我们有一个 CNN 层的输出 假设某个 CNN 层的输出是一个 4D 张量,形状为&#…...

最短木板长度
最短木板长度 真题目录: 点击去查看 E 卷 100分题型 题目描述 小明有 n 块木板,第 i ( 1 ≤ i ≤ n ) 块木板长度为 ai。 小明买了一块长度为 m 的木料,这块木料可以切割成任意块,拼接到已有的木板上,用来加长木板。 小明想让最…...

团体程序设计天梯赛-练习集——L1-034 点赞
前言 20分的题目题目不难,理解也不难,做起来有点问题 L1-034 点赞 微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。本…...

利用腾讯云cloud studio云端免费部署deepseek-R1
1. cloud studio 1.1 cloud studio介绍 Cloud Studio(云端 IDE)是基于浏览器的集成式开发环境,为开发者提供了一个稳定的云端工作站。支持CPU与GPU的访问。用户在使用 Cloud Studio 时无需安装,随时随地打开浏览器即可使用。Clo…...

LabVIEW的智能电源远程监控系统开发
在工业自动化与测试领域,电源设备的精准控制与远程管理是保障系统稳定运行的核心需求。传统电源管理依赖本地手动操作,存在响应滞后、参数调节效率低、无法实时监控等问题。通过集成工业物联网(IIoT)技术,实现电源设备…...

Docker深度解析:安装各大环境
安装 Nginx 实现负载均衡: 挂载 nginx html 文件: 创建过载目录: mkdir -p /data/nginx/{conf,conf.d,html,logs} 注意:在挂载前需要对 conf/nginx.conf 文件进行编写 worker_processes 1;events {worker_connections 1024; …...