发布时间:2026/7/30 17:03:18
Zigbee、STM32系列开发板-非定时器方式实现PWM呼吸灯-实时状态更改方法-呼吸灯简易实现方法 一、概述本文讲述关于PWM呼吸灯不使用定时器的呼吸方式并且可以实现随时暂停至某一单个亮度的PWM调光程序具有非常高的实时性对外界改变操作实时做出反馈。二、实现思路本文的实现思路是以非定时器PWM实现的需要先学习文章STM32实现模拟呼吸灯效果-非PWM-STM32CubeMx项目生成-手动控制呼吸灯调光下面我们需要使用此思路重新完成呼吸灯的配置其只要思路即在主函数中一直进行PWM的呼吸效果将完整的PWM过程拆分为若干个过程使得程序具有实时性且可以随时停留在某个占空比上当且仅当主程序调用调光函数时占空比才会相应增加或减少。三、代码实现首先定义两个变量分别代表占空比与占空比上升标志位。int zkb0; int up1;主要代码实现如下void breath() { GpioWrite(Led1,0); if(up1) { zkb; if(zkb1500) up0; } else { zkb--; if(zkb0) up1; } for(int i0;i1500;i) { if(izkb) { GpioWrite(Led1,1); } } }通过阅读本段代码可以得知我们只需要在主函数中不断调用即可实现呼吸灯效果且当我们不在调用时LED灯将熄灭。下面我们继续增加一个标志位仅当标志位为真时才会提高会降低占空比代码实现如下int zkb0; int up1; int breathflag0; void breath() { GpioWrite(Led1,0); if(breathflag1) { if(up1) { zkb; if(zkb1500) up0; } else { zkb--; if(zkb0) up1; } } for(int i0;i1500;i) { if(izkb) { GpioWrite(Led1,1); } } }通过这个函数我们可以看出我们在主函数中循环调用该函数当呼吸标志位为真时则占空比会改变否则将持续当前亮度。主函数调用方法int main( void ) { Init(); while( 1 ) { breath(); if(isKey2Pressed()) { breathflag1; resetKey2(); } if(isKey3Pressed()) { breathflag0; resetKey3(); } } }函数解析如下当按下key2键时程序开始进入呼吸灯当按下key3键时呼吸灯停止并一直展示当前亮度。四、总结本文阐述了一种除定时器PWM调光外的一种虚拟的PWM过程且在实时性、效率方便提高以最简单的方式完成呼吸灯的暂停与开始。

相关新闻

2026/7/30 17:03:18

LLM集成与AI智能体开发实战:从原理到企业级应用

2026年伦敦DConf大会:LLM集成与AI智能体开发实战指南最近在准备参加2026年伦敦DConf大会的技术分享时,发现LLM集成与AI智能体开发已经成为开发者社区的热门话题。无论是企业级应用还是个人项目,如何高效地将大语言模型集成到现有系统中&#…

2026/7/30 17:03:18

BES(恒玄) 2600X 蓝牙A2DP低延时解析

对于延时来说,一般蓝牙耳机整体延时主要分为手机端和耳机端,整个链路上延时主要集中在数据buffer区域 做低延时的方案有以下两个方向 1、一般的编解码方式,AAC跟SBC,用SBC来做低延时比较好,为什么呢?因为它需要解码的数据更少, 1 frame = 128 sample,而AAC的话,1 fr…

2026/7/30 17:03:18

拓扑排序题目:最小高度树

文章目录题目标题和出处难度题目描述要求示例数据范围解法思路和算法代码复杂度分析题目 标题和出处 标题:最小高度树 出处:310. 最小高度树 难度 6 级 题目描述 要求 树是一个无向图,其中任何两个结点只通过一条路径连接。换句话说&…

2026/7/30 18:13:26

告别输入法切换烦恼:深蓝词库转换工具让您的词库自由迁移

告别输入法切换烦恼:深蓝词库转换工具让您的词库自由迁移 【免费下载链接】imewlconverter ”深蓝词库转换“ 一款开源免费的输入法词库转换程序 项目地址: https://gitcode.com/gh_mirrors/im/imewlconverter 在数字化时代,输入法已成为我们日常…

2026/7/30 18:13:26

【AI大模型】指令遵循:提升模型听话程度的提示词方法

【AI大模型】指令遵循:提升模型听话程度的提示词方法(含实操代码) 在AI大模型实际应用中,绝大多数用户都会遇到同一个顽固问题:模型经常“不听话”。明明写清了需求、格式、约束和禁忌,但模型依然擅自发挥、遗漏要求、篡改规则、自作主张、忽略限定条件,出现答非所问、…

2026/7/30 18:13:26

【Matlab】有限元法求解弹性力学问题

【Matlab】有限元法求解弹性力学问题 一、引言 弹性力学是固体力学的重要分支,主要研究弹性物体在外力载荷、温度变化和边界约束作用下产生的应力应变与位移分布规律,广泛应用于机械结构设计、土木工程建筑、航空航天构件、新能源设备壳体等诸多工程领域。各类工程结构在服…

2026/7/30 18:08:25

强力解密Navicat密码:3分钟找回数据库连接密码的终极方案

强力解密Navicat密码:3分钟找回数据库连接密码的终极方案 【免费下载链接】navicat_password_decrypt 忘记navicat密码时,此工具可以帮您查看密码 项目地址: https://gitcode.com/gh_mirrors/na/navicat_password_decrypt 你是否曾因忘记Navicat保存的数据库…

2026/7/29 22:32:30

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

一、背景与测试方案 在实际项目交付中,PDF文件合并与版权保护水印的叠加是一个高频但容易被低估的技术需求。典型的处理链路涉及:多源PDF的文件流合并、页面级水印渲染(含透明度混合与图层叠加)、输出文件体积控制。看似简单的操作…

2026/7/30 0:01:39

[GESP202606 四级] 扫雷

B4557 [GESP202606 四级] 扫雷 https://www.luogu.com.cn/problem/B4557 中国计算机学会(CCF)2026年6月C四级讲解——扫雷 https://www.bilibili.com/video/BV1MCMg6AEXR/ B4557 [GESP202606 四级] 扫雷 https://www.bilibili.com/video/BV1ZKTj6ZEVh/ 2…

2026/7/30 0:01:39

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/29 13:12:43

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…