当前位置: 首页 > news >正文

单片机实现挡位调节

简易挡位调节模块

1、初始化硬件

  • 这里就不过多赘述了,去看我之前的帖子,我这篇帖子选择TIM2的1通道

PWM的简单应用

2、触发方式

(1)中断

I 初始化硬件

  • 启用按钮的中断
    img
  • 在主函数外写入中断回调函数
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){uint16_t value;__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, value);
}
/* USER CODE END 0 */

(2)轮询

即在循环体内频繁判断按钮是否被按下

  • 在主循环外侧定义全局变量Value
uint16_t Value;
/* USER CODE END 0 */
  • 在循环体内读取按钮处接口状态
	  HAL_Delay(99);if(HAL_GPIO_ReadPin(B1_GPIO_Port, B1_Pin) == GPIO_PIN_RESET){/*-----------写入增加比较值的代码-----------------*/}

2、调节方式

I环状链表

代码部分

这里选择中断处理的方式来写

  • 在主函数外侧声明结构体数组并重构中断回调函数
/* USER CODE BEGIN 0 */
struct Node{uint16_t CompareValue;
}Level[6];
uint16_t value;
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){value = Level[value].CompareValue;__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, (value * 2000));
}
/* USER CODE END 0 */
  • 在主函数内初始化数组
  /* USER CODE BEGIN Init */Level[0].CompareValue = 1;Level[1].CompareValue = 2;Level[2].CompareValue = 3;Level[3].CompareValue = 4;Level[4].CompareValue = 5;Level[5].CompareValue = 0;/* USER CODE END Init */

原理

  • 当按钮触发后,会产生中断回调,将PWM比较值变成环状链表的下一个键值
    img

实验效果

  • 可呈现6个挡位得亮度变化
    img

II循环体

这里以"轮询的代码为例"

  • 在主循环内写入以下内容
  /* USER CODE BEGIN WHILE */while (1){//判断比较值是否装满if(Value > 19999)Value = 0;HAL_Delay(99);//延迟0.1秒//判断按钮是否按下if(HAL_GPIO_ReadPin(B1_GPIO_Port, B1_Pin) == GPIO_PIN_RESET){//如果按下,则增加比较值Value += 500;__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, Value);}/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}

实验原理、

  • 每隔0.1秒,询问一次按钮处GPIO的状态,如果为按下状态,则增加500比较值
  • 当比较值满了,则清空

实验效果

img

3、代码清单

  • stm32f4xx_hal.h
/*** @brief  读取指定的输入脚* @param  GPIOx 指定的GPIO口*                    * @param  GPIO_Pin 指定的GPIO引脚*         This parameter can be GPIO_PIN_x where x can be (0..15).* @retval 输入引脚的状态*/
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
  • stm32f4xx_hal_gpio.h
/** * @brief  GPIO 状态*/
typedef enum
{GPIO_PIN_RESET = 0,//置0GPIO_PIN_SET//置1
}GPIO_PinState;

4、总结

(1)触发方式

触发方式 特点
轮询 占用资源,效率高
中断 效率高,但是占用资源

(2)调节方式

调节方式 特点
环状链表 读写方便,但数据离散,占资源
循环体 可连续显示效果,但可读性不高

相关文章:

单片机实现挡位调节

简易挡位调节模块 1、初始化硬件这里就不过多赘述了,去看我之前的帖子,我这篇帖子选择TIM2的1通道PWM的简单应用2、触发方式 (1)中断 I 初始化硬件启用按钮的中断在主函数外写入中断回调函数void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){uint16_t value;__HAL_TIM_SET_CO…...

完整教程:从 WildCard 野卡到 gptplus.plus:一次解决 OpenAI 支付难题的实战复盘,轻松搞定Gpt充值

完整教程:从 WildCard 野卡到 gptplus.plus:一次解决 OpenAI 支付难题的实战复盘,轻松搞定Gpt充值pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "…...

阿里 Qoder 新升级,Repo Wiki 支持共享、编辑和导出

Repo Wiki 正式上线新功能:支持 Wiki 共享、编辑和导出。为了让知识更好地在团队中流转,Qoder 提供了 Wiki 共享能力。当用户在本地生成 Wiki 时,会自动在代码库中创建一个专属目录,只需将该目录推送至代码仓库,即可将生成的文档轻松共享给团队成员,实现协作共建。过去两…...

长城杯WriteUp

文曲签学 提示是穿透并且双写,所以直接抓包在后台进行穿透,获得flagEZ_upload exp: 先创建软链接,然后上传shell import tarfile import os from io import BytesIO# Webshell 内容 webshell_content = b<?php @eval($_POST["cmd"]); ?> webshell_name = …...

vite取别名@

在 vite.config.ts 中: import path from "path"; export default defineConfig({// 取别名resolve: {alias: {"@": path.resolve(__dirname, "./src")}} });在 tsconfig.node.json、tsconfig.json 以及 tsconfig.app.json 中:"compilerO…...

JavaScript数据网格方案AG Grid 34.2 发布:更灵活的数据结构、更流畅的大数据交互与全新 UI 体验

JavaScript数据网格方案AG Grid 正式发布 34.2 版本,本次更新为开发者带来了更灵活的数据分组方式、更顺畅的大数据集交互体验,以及更直观的 UI 提示与操作反馈。近日,JavaScript 数据表格方案AG Grid版本,本次更新为开发者带来了更灵活的数据分组方式、更顺畅的大数据集交…...

BOE(京东方)IPC电竞嘉年华盛典圆满收官 第三届无畏杯总决赛引领电竞生态发展热潮

9月12日,BOE IPC电竞嘉年华盛典暨第三届BOE无畏杯《无畏契约》挑战赛总决赛在北京中关村国际创新中心圆满收官,来自大众赛道的“肌肉瞄准”战队最终赢得冠军奖杯。作为BOE(京东方)全球创新伙伴大会2025(BOE IPC2025)中备受瞩目的标杆性活动,本届赛事首次以《无畏契约》全…...

P1886 滑动窗口 /【模板】单调队列

P1886 滑动窗口 /【模板】单调队列做题思路:#include <bits/stdc++.h>using namespace std; #define int long longconst int maxn = 1e6 + 10;int n,k,a[maxn];deque<int> dp; //双端队列,普通队列队尾无法删除 signed main(){ ios::sync_with_stdio(0); cin.t…...

kingbase金仓数据库docker部署完整步骤

使用docker: docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 docker镜像包: 下载地址:https://ww…...

glTF/glb功能、应用和 5 个基本最佳实践

添加图片注释,不超过 140 字(可选) 在 3D 内容重新定义我们在线购物、学习和互动方式的世界中,glTF 文件格式已成为行业标准。glTF(GL 传输格式的缩写)由 Khronos Group(也是 WebGL 和 Vulkan 的幕后黑手)创建的,被设计为“3D 的 JPEG”,以紧凑、高效的方式提供针对 …...

Spotify 音乐ML练习数据集含158 个特征,11

数据概览与特征说明 本 Spotify ML 练习数据集专为机器学习初学者设计,旨在提供端到端的 ML 管道实践资源。原始数据含 24 个特征,经处理后扩展至 158 个工程特征,涵盖 11.4 万 + 首 Spotify 歌曲信息。 ,涵盖流行度评分、音频特征、流派标签、聚类目标及艺术家统计量。 核…...

abc423

AC 6 (ABCDEF), Score 2050, Penalty 97:57(2), Rank 419, Rating 1358→1415(+57)不行了这场 abc 对我太友好了。 B 吃一发罚时是因为忘记判全 0 来着。 D 直接优先队列就可以。 E 一眼莫队感觉 3e5 很能跑就不动脑子往上写了( F 二项式反演秒了,但是把 \(m\) 打成 \(n\) 一…...

AI辅助分析HP DL360 GEN7 服务器安装USB3扩展卡

AI辅助分析HP DL360 GEN7 服务器安装USB3扩展卡背景 之前我们文章写过惠普HP DL360 GEN7服务器扩展显卡,与解决服务器磁盘阵列问题,今天我们尝试增加一块扩展USB3.0的扩展卡。 我们通过AI搜索先调查研究。实践https://metaso.cn/s/rh2BUAQ文档对话原始文档是英文的,我们…...

AI 应用开发,不就是调个接口么?

AI 技术发展日新月异,对程序员的要求也在不断提高。**AI 相关知识不再只是算法工程师需要了解,而是每个程序员都必须掌握的基本技能**。大家好,我是程序员鱼皮。 由于 AI 的流行,很多公司开始搞起了 AI 相关的业务,或者给老项目加个 AI 相关的功能。 这也给开发方向的程序…...

95.费解的开关

95.费解的开关 用枚举的思想,把第一行先枚举了 (通过: for (int op = 0; op < 32; op ++ )for (int i = 0; i < 5; i ++ )if (op >> i & 1)) 根据第i行去trun第i+1行来改变第i行 trun的改变利用了偏移量来简化 #include <iostream> #include <alg…...

最新药物数据集下载:来自Drugs

数据集概述与重要性 在当今医疗健康领域,数据驱动的决策变得越来越重要。药物相关结构化数据集作为连接医药研究与人工智能应用的关键桥梁,为研究人员、数据科学家和医疗从业者提供了宝贵的资源。本数据集从权威医药网站Drugs.com提取并经过严格预处理,包含了丰富的药物信息…...

【VPX361】基于3U VPX总线架构的XCZU47DR射频收发子模块

产品概述 VPX361是一款基于3U VPX总线架构的8路射频收发子模块,板卡采用1片XCZU47DR RFSOC来实现8路射频信号的高速采集、信号生成以及处理,并进行智能目标识别。该板卡的PS端支持1组72位DDR4 SDRAM,PL端支持1组32位DDR4 SDRAM,支持1片32GB EMMC存储单元,支持2片QSPI FLAS…...

自动驾驶ADAS数据集 13万张高清道路车辆识别图像 覆盖多场景智能交通应用 支持目标检测图像识别模型训练与AI视觉算法开发

引言与背景 在自动驾驶、智能交通和车联网等领域,高精度车辆识别是安全决策的前提。无论是面向全自动驾驶,还是日益普及的高级驾驶辅助系统(ADAS),都依赖大量多场景、多车型的标注数据进行模型训练。 然而,现实中存在两个挑战:场景不均衡 ——多数数据集中夜间、雨雾等极…...

Norwood-Hamilton男性脱发分级图像集|2400+张多角度高清头皮图像|涵盖7类脱发诊断标注|适用于AI诊断工具开发、皮肤科研究与植发产品研发|包含5角度标准化拍摄、支持秃顶早期检测

数据集概述 男性脱发(雄激素性脱发)是困扰全球约50%男性的常见皮肤问题,准确诊断和分级对治疗方案的选择至关重要。本数据集针对这一临床需求,系统性地收集了2400多张高质量男性脱发头皮图像,为AI辅助诊断提供了标准化训练资源。 所有图像均从五个标准化角度(前额、顶部、…...

AI生成文本检测数据集:基于不平衡数据集(人类94% vs AI 6%)的高效机器学习模型训练,涵盖ChatGPT、Gemini等LLM生成内容

引言与背景 随着以ChatGPT和Gemini为代表的大型语言模型(LLM)的快速发展,人工智能生成文本(AIGC)已广泛应用于学术研究、内容创作、新闻传播和日常交流等多个领域。这些模型生成的内容流畅度和逼真度极高,不仅显著提升了信息生产效率,同时也带来了学术不端、虚假信息泛滥…...

阶跃星辰开源Step-Video-T2V模型:300亿参数打造高保真视频生成新标杆

阶跃星辰开源Step-Video-T2V模型:300亿参数打造高保真视频生成新标杆 在AI视频生成技术快速发展的当下,国内AI公司阶跃星辰正式宣布开源其最新研发的Step-Video-T2V文生视频模型。这款参数规模高达300亿的大模型能够生成长达204帧的540P高清视频,在多个关键指标上展现出行业…...

多多报销小程序系统详解

1. 概述总结 多多报销是一款基于微擎系统交付的商家运营工具集成小程序,支持微信小程序,采用 PHP5.4、PHP5.5、PHP7.1 开发,源码未加密,属于官方正品。其核心是打造另类商家运营模式,集成多种运营工具,目前主要采用排队返现模式,后续将扩展平台积分模式、每天返现、抽奖…...

第0章 矿卡EBAZ4203爆改zynq开发板介绍和VIVADO的安装

前言 STM32暂时没有感兴趣的点来写了,后续可能会做LVGL的移植和开发,开新坑吧,也是以前工作时玩的板子 由于本人较懒,记录主要是过程,由于zynq的比stm32做的人少很多,资料也少很多,我会简要介绍原理,操作流程主要由图片加少量文字组成一、想法萌发 在查资料时看到有人用…...

德创恋爱话术宝典介绍

1. 概述总结 德创恋爱话术宝典是一款基于微擎系统的应用,微擎系统是一款基于 PHP 开发的开源应用生态系统,主要用于快速搭建微信公众号、小程序等应用,同时支持 Web 系统开发与部署。德创恋爱话术宝典支持无限多开,适用于微信公众号、微信小程序、PC 等类型,支持 PHP7.3。…...

无痕检测是否注册iMessage服务,iMessages数据筛选,iMessage蓝号检测协议

一、实现iMessage蓝号数据筛选的两种方式:1.人工筛选,将要验证的号码输出到文件中,以逗号分隔。再将文件中的号码粘贴到iMessage客户端的地址栏,iMessage客户端会自动逐个检验该号码是否为iMessage账号,检验速度视网速而定。红色表示不是iMessage账号,蓝色表示iMessage账号…...

机器学习回顾(二)——KNN算法 - 教程

机器学习回顾(二)——KNN算法 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important;…...

利用langchain创建信息检索链对话应用

以下内容有AI生成内容,请注意区分信息检索链 信息检索链三步流程走向图 flowchart TDA[用户输入问题] --> B[第一步: 查询优化]subgraph B [查询优化]B1[原始用户问题] --> B2[LLM分析并优化]B2 --> B3[生成多个搜索查询]endB --> C[第二步: 信息检索]subgraph C …...

不同的.cs文件的命名空间相同

在 .NET(包括 C#)里,“同一个命名空间”完全可以散落在多个 .cs 文件——甚至散落在多个不同的项目/程序集里。不同文件但同一命名空间的类型访问级别受限 → internal 仍互相可见(同一程序集内);public 随便用;private/file 只能在声明文件内。命名空间是“逻辑地址”,…...

MyEMS:开源的力量,如何为企业能源管理带来颠覆性变革?

在能源成本不断上涨和碳中和成为全球共识的今天,高效能源管理已成为企业的核心竞争力。然而,传统能源管理系统往往存在成本高昂、封闭僵化、难以定制等问题,让许多企业望而却步。正是在这样的背景下,MyEMS 作为一款完全开源的能源管理系统,正在以其独特优势重新定义行业标…...

http

上一篇文章 初始化 MCP 环境 & 创建 MCP Server (一) 讲的是如何在 SSE 模式下启动 MCP Server。...

AI招聘机器人制造商Paradox.ai因弱密码泄露数百万求职者数据

安全研究人员发现AI招聘平台Paradox.ai因使用弱密码"123456"导致麦当劳等企业的6400万求职者信息泄露。调查还发现该公司越南开发者的设备感染信息窃取恶意软件,暴露出更多企业内部凭证和认证cookie。弱密码揭露AI招聘机器人制造商Paradox.ai的安全漏洞 安全研究人员…...

完整教程:【Leetcode hot 100】543.二叉树的直径

完整教程:【Leetcode hot 100】543.二叉树的直径pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace…...

Thundbird无法获取自签证书。

对于自建的邮件服务器,使用thundbird访问时,老版本会提示证书风险,但新版本没有提示,导致无法添加新的邮件账户。 方法(转自外网): 原文: In config editor, add network.security.ports.banned.override as a string with a value of "993" Then go to Mana…...

Gitee推出SBOM扫描功能:为开源供应链安全构筑数字防火墙

Gitee推出SBOM扫描功能:为开源供应链安全构筑"数字防火墙" 在开源软件占据现代软件开发90%以上组件的今天,供应链安全已成为行业不可忽视的挑战。Gitee最新推出的SBOM(软件物料清单)扫描功能,正在为开发者提供一套完整的开源组件风险管控方案,这标志着国内代码…...

mysql连表查询,轻松掌握多表数据关联技巧

做过数据库开发的朋友一定遇到过这样的困扰:数据分散在不同的表中,怎样才能一次查询获取完整的关联信息?比如你需要同时获取用户姓名和订单详情,或者既要产品信息又要供应商资料。这时候,连表查询就像一座连接数据孤岛的桥梁,让我们能够高效获取分散在各表中的相关联数据…...

Milvus集群部署

#本次部署其中的组件kafka、minio均为外置 将milvus chart包解压拷贝至某个目录下 编辑helm的values.yaml文件 ## Enable or disable Milvus Cluster mode cluster:enabled: trueimage:all:repository: milvusdb/milvustag: v2.4.1pullPolicy: IfNotPresent## Optionally speci…...

Qt-捕获摄像头画面

Qt-捕获摄像头画面在qt中捕获摄像头画面,在ui界面上添加一个comboBox控件、label标签和一个pushButton按钮,comboBox用于显示摄像头的设备,按钮用于开启摄像头,label用于显示摄像头捕获的画面。 //需要在.pro文件中加上multimedia multimediawidgets QT += core gui …...

选择MyEMS的十大核心优势:为您的企业开启智慧能管新纪元

在纷繁复杂的能源管理解决方案中,企业如何做出最明智的选择?如果您正在寻求一个既能立竿见影降本增效,又能为长期发展构建数字化基座的平台,那么MyEMS无疑是您的绝佳选择。它不仅是一款软件,更是一个强大的能源管理生态系统。以下是选择MyEMS的十大不可抗拒的优势。 一、极…...

通过 kubectl 插件 kubectl-tree 查看API对象层级关系

分享一个开源小工具 kubectl-tree,用于查看 k8s API 对象层级关系。 比如对于无状态应用来讲,可以看到Deployment --> ReplicaSet --> Pod 的构成关系。 采用二进制离线方式安装: 1、下载二进制安装包 wget https://github.com/ahmetb/kubectl-tree/releases/download…...

【Unity 性能优化之路——渲染流程(1)】 - 详解

【Unity 性能优化之路——渲染流程(1)】 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace…...

HCIA回顾——STP

...

.NET驾驭Word之力:COM组件二次开发全攻略之连接Word与创建你的第一个自动化文档

面向具有一定C#和.NET基础的开发者,本文将带你进入Word文档自动化处理的世界。通过本系列教程,你将掌握使用.NET操作Word文档的各种技巧,实现文档的自动化生成、处理和操作。引言 在日常开发中,我们经常需要处理Word文档,比如自动生成报告、批量处理文档、格式化文档内容等…...

last logicflow

<template><div class="logicflow-page"><div class="sidebar"><div class="palette-title">组件面板</div><div class="palette-item" @mousedown="startDrag(custom-rect, 矩形)">矩…...

老公对我的精神虐待

2025年09月15日早上。使唤我倒垃圾。然后在我往垃圾桶扔垃圾时,他在吐盔。他对我大呼小叫。从来不会好好说话,一言不合应会对我大呼小叫。在和他相处的过程中,感觉不到做为一个人最基本的尊重‘理解’‘包容’。他还喜欢语言暴力。喜欢贬低人。喜欢和你讲一个故事,然后说里…...

用户沉默之日,产品衰亡之时:逃离迭代中的“沉默陷阱”

一、引言 当前,每天有数以千计的新产品上线,但大多很快陨落,究其原因,不是技术不行或功能太差,甚至不是输给对手,而是消无声息的死去。为什么?原因就在于用户不再反馈和交流,没有真实的反馈作为方向盘,产品如同在夜晚行驶的汽车,或早或晚撞向了深渊。 二、“沉默的大…...

华与华是谁?

华与华是谁? “华与华”是由华杉和华楠两兄弟于2002年创立的战略营销咨询公司。他们的核心方法论是 “超级符号”和“超级话语” ,主张用人类文化中固有的、人人都熟悉符号和话语,来降低品牌的传播成本,让品牌一眼就被记住。 他们的著名成功案例包括:蜜雪冰城:“你爱我,…...

从工具到生态:现代Bug管理系统的平台化转型之路

从工具到生态:现代Bug管理系统的平台化转型之路 在DevOps和持续交付成为行业标配的当下,传统独立的Bug追踪系统正面临前所未有的挑战。随着软件开发流程的日益复杂化,仅具备单一缺陷记录功能的传统系统已难以满足高效协作需求。本文将深入分析传统Bug管理工具的局限性,解读…...

PK-CWT 系列罗氏线圈使用指南:操作方法与注意事项

一、概述 普科科技PRBTEK的PK-CWT系列柔性电流探头是一款采用柔性开环结构的专业测量工具,能够精准复现大功率开关全频段电流波形,在多个领域发挥着重要作用。 在性能方面,该系列产品表现出色。其频率响应带宽范围从0.1Hz至16MHz,这意味着它不仅能精准捕捉超低频段的缓变信…...

IDEA Debug 高阶技巧,老手都是这么玩的~~

IDEA Debug 高阶技巧,老手都是这么玩的~~ 小哈学Java2025年09月14日 15:23 安徽来源:juejin.cn/post/7308539123537592357 👉 欢迎加入小哈的星球,你将获得: 专属的项目实战(多个项目) / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论新项目:《Spring AI…...

mysql 创建分区,如何轻松提升海量数据查询效率

你是否遇到过这样的烦恼:随着业务增长,MySQL单表数据量突破千万级别,查询速度越来越慢,甚至影响用户体验?本文将带你深入理解MySQL分区功能,掌握提升大表查询性能的实战技巧。 什么是MySQL表分区 MySQL中的数据以文件形式存储在磁盘上,默认路径可通过my.cnf中的datadir查…...