蓝桥杯STM32 G431 hal库开发速成——输入捕获

news2024/9/22 15:25:56

蓝桥杯的输入捕获较为简单,基本不涉及溢出的问题。所以这里就不介绍溢出了。文末有源码。

一、Cubemx配置

在这里插入图片描述

二、代码编写

1.在捕获回调函数中


void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{
	if(htim->Instance==TIM3)
	{
		switch(count)
		{
			case 1:
			{
				jishu1=__HAL_TIM_GET_COUNTER(&htim3);
			  __HAL_TIM_SET_CAPTUREPOLARITY(&htim3, TIM_CHANNEL_1, TIM_INPUTCHANNELPOLARITY_FALLING);
				count++;
				break;
			}
			
			case 2:
			{
				jishu2=__HAL_TIM_GET_COUNTER(&htim3);
			  __HAL_TIM_SET_CAPTUREPOLARITY(&htim3, TIM_CHANNEL_1, TIM_INPUTCHANNELPOLARITY_RISING);
				count++;
				break;
			}
			case 3:
			{
				jishu3=__HAL_TIM_GET_COUNTER(&htim3);
				count++;
				HAL_TIM_IC_Stop_IT(&htim3,TIM_CHANNEL_1);
				break;
			}
		}
	}
}

2.在main函数中

 LCD_Init();
  LCD_Clear(White);
  HAL_TIM_IC_Stop_IT(&htim3, TIM_CHANNEL_1);
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
	  switch(count)
	  {
		  case 0:
		  {
			  __HAL_TIM_SET_COUNTER(&htim3, 0);
			  HAL_TIM_IC_Start_IT(&htim3, TIM_CHANNEL_1);
			  __HAL_TIM_SET_CAPTUREPOLARITY(&htim3, TIM_CHANNEL_1, TIM_INPUTCHANNELPOLARITY_RISING);
			  count++;
			  break;
		  }
		  
		  case 4:
		  {
			  fre=1000000.0/(jishu3-jishu1);
			  zkb=(jishu2-jishu1)*100.0/(jishu3-jishu1);
//			  频率为占空比为
			  sprintf(buff,"zkb:%.2f%% fre:%.2f",zkb,fre);
			  LCD_DisplayStringLine(Line4, buff);
			  count=0;
			  break;
		  }
		  
	  }
  }
  /* USER CODE END 3 */
}

三、现象

通过调节开发版上的旋钮改变占空比跟频率
在这里插入图片描述
小编的源码输入捕获源码

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

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

相关文章

Mysql数据库的SQL语言详解

目录 一、数据库的基础操作 1、数据库的基本查看和切换 1.1 查看数据库信息 1.2 切换数据库 1.3 查看数据库中的表信息 1.4 查看数据库或数据库中表的结构(字段) 1.5 数据类型 1.5.1 整数型 1.5.2 浮点型(float和double) 1.5.3 定点数 1.5.4…

鸿蒙一次开发,多端部署(五)页面开发的一多能力介绍

本章介绍如何使用方舟开发框架“一多”能力,开发出在多设备上正常显示的页面。方舟开发框架推荐开发者使用声明式开发范式开发应用,故本章的内容和示例都主要基于声明式开发范式。本章主要包含如下内容: 布局能力 布局决定了页面中的元素按照…

Day75:WEB攻防-验证码安全篇接口滥用识别插件复用绕过宏命令填入滑块类

目录 图片验证码-识别插件-登录爆破&接口枚举 登录爆破 接口枚举 图片验证码-重复使用-某APP短信接口滥用 滑块验证码-宏命令-某Token&Sign&滑块案例 知识点: 1、验证码简单机制-验证码过于简单可爆破 2、验证码重复使用-验证码验证机制可绕过 3、…

九、C#桶排序算法

简介 桶排序是一种线性时间复杂度的排序算法,它将待排序的数据分到有限数量的桶中,每个桶再进行单独排序,最后将所有桶中的数据按顺序依次取出,即可得到排序结果。 实现原理 首先根据待排序数据,确定需要的桶的数量。…

pycharm中的Mark Directory As 里的 Sources Root、Excluded...

这里主要提到两个文件夹的作用,分别是Sources Root、Excluded 1、Sources Root 1、场景 平时使用pycharm,有时出现导包问题,将那个目录Mark Directory as sources root,然后就可以正常运行代码了 2、原理 其实主要就是将那个目录…

算法沉淀——贪心算法七(leetcode真题剖析)

算法沉淀——贪心算法七 01.整数替换02.俄罗斯套娃信封问题03.可被三整除的最大和04.距离相等的条形码05.重构字符串 01.整数替换 题目链接:https://leetcode.cn/problems/integer-replacement/ 给定一个正整数 n ,你可以做如下操作: 如果…

Svg Flow Editor 原生svg流程图编辑器(三)

系列文章 Svg Flow Editor 原生svg流程图编辑器(一) Svg Flow Editor 原生svg流程图编辑器(二) Svg Flow Editor 原生svg流程图编辑器(三) 实现对齐辅助线 在 logicFlow 中,辅助线的实现是通…

《云计算:数字时代的引擎》

在数字化时代,云计算技术以其强大的计算能力和灵活的应用方式,成为推动各行各业发展的引擎。本文将围绕云计算的技术进展、技术原理、行业应用案例、面临的挑战与机遇以及未来趋势进行详细探讨。 云计算的技术进展 云计算的技术进展涵盖了多个方面&…

Spring框架本身自带的一些好用的工具类

1 Assert 很多时候,我们需要在代码中做判断:如果不满足条件,则抛异常。 有没有统一的封装呢? 其实Spring给我们提供了Assert类,它表示断言。 1.1 断言参数是否为空 断言参数是否空,如果不满足条件,则…

Day23 集合

Day23 集合 一、含义 集合是Java API所提供的一系列类,可以用于动态存放多个对象 (集合只能存对象)集合与数组的不同在于,集合是大小可变的序列,而且元素类型可以不受限定,只要是引用类型。(集合中不能放基本数据类型&#xff0c…

flutter实现视频播放器,可根据指定视频地址播放、设置声音,进度条拖动,下载等

需要装依赖: gallery_saver: ^2.3.2video_player: ^2.8.3 实现代码 import dart:async; import dart:io;import package:flutter/material.dart; import package:gallery_saver/gallery_saver.dart; import package:path_provider/path_provider.dart; import pac…

前端框架推荐 Arco Design

Arco Design - 企业级产品的完整设计和开发解决方案 预览地址:Arco Design Pro - 开箱即用的中台前端/设计解决方案 一 开发 有vue3、React版本。 文档地址:Arco Design - 企业级产品的完整设计和开发解决方案 还配有对应脚手架:GitHub -…

sonarqube使用指北(二)-如何启动一次完整的本地扫描

一、引言 上一篇文章之后 我们应该已经成功的部署了sonarqube程序,这一篇文章我们就来进行一次简单的本地扫描。 优点: 安全性:你可以在任何你信任的环境下执行扫描工作,而不是依赖外部安全能力即时反馈: 开发者可以在编写代码时获得即时反馈,了解其代码的质量和潜在问题…

【Godot4.2】随机数应用案例 - 制作骰子组件

概述 在学习随机数之后,我们就来用随机数实现骰子。 初期:不要拘泥于形式。只要表现了随机,骰子可以不必做成骰子的样子。刚开始因为技术力的原因,可能无法实现比较真实和动态的骰子效果,但是这并不意为着不可以做出…

MATLAB | R2024a更新了哪些好玩的东西?

Hey 好久不见,大家一看三月中下旬这个时间节点也应该能猜到这篇更新什么内容,没错MATLAB R2024a正式版发布啦啦拉拉,直接来看看有啥我认为比较有意思的更新点吧: 1 极坐标表达式绘制 将会使用使用fpolarplot函数来替换ezpolar&a…

探索数据结构:顺序栈与链式栈的原理、实现与应用

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:数据结构与算法 贝蒂的主页:Betty’s blog 1. 栈的定义 栈简单来说就是一种只允许在一端进行操作(插入与删除&…

将OpenCV与gdb驱动的IDE结合使用

返回:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV4.9.0开源计算机视觉库在 Linux 中安装 下一篇:将OpenCV与gcc和CMake结合使用 ​ 能力 这个漂亮的打印机可以显示元素类型、、标志is_continuous和is_subm…

【论文阅读】基于多特征融合的智能合约缺陷检测方法

摘要: 1、预处理:颜色标记、词汇提取、字符转换、合约之间的继承关系的提取 2、 使用融合模型进行特征提取(BERT、CNN、BiLSTM) 3、使用node2vec随机游走算法,将合约之间的继承关系作为输入得到合约关系的特征向量。 4…

通过 Socket 手动实现 HTTP 协议

你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我! 文章目录 一…

如何让uni-app开发的H5页面顶部原生标题和小程序的顶部标题不一致?

如何让标题1和标题2不一样&#xff1f; 修改根目录下的App.vue&#xff08;核心代码如下&#xff09; <script>export default {onLaunch() {// 监听各种跳转----------------------------------------[navigateTo, redirectTo, reLaunch, switchTab, navigateBack, ].…