- 博客(27)
- 收藏
- 关注
原创 通用红外遥控器接收代码(实际项目中使用)
本文介绍了一个基于定时中断的NEC红外遥控解码实现方案。程序通过64μs定时中断设置b_time_flag标志位,检测9ms低电平和4.5ms高电平的引导码,然后解析32位数据(4字节)。数据解码时,通过检测0.56ms低电平和0.56ms/1.68ms高电平来判断0/1位,并将4字节数据存入数组。最后校验数据有效性(前两字节和后两字节互为反码),返回指定位置的数据。主程序根据返回的键值执行相应操作。该方案包含硬件寄存器配置、引导码检测、数据解析和校验等完整解码流程。
2025-12-26 15:18:15
382
原创 从0开始学习esp32(不定时更新)
一开始接触到esp32的时候真的不知道何从下手,打开一个esp的文件各种文件,一个hello_word工程都包含很多东西,一堆不认识的新东西,cmake,vscode里的json文件,弄的云里雾里,所以想写一篇文章关于新手esp32从0开始的学习路程,一是分享二是可以记录我自己的一个学习成果。
2025-11-20 16:17:03
668
原创 拍拍灯电路(用咪头识别拍拍动作)
摘要:该程序实现了通过咪头信号控制拍拍灯的功能。单片机通过VDD供电后检测ADC值,当ADC高寄存器值大于100时置位clap_flag,小于80时清零。若检测到有效信号(clap_flag=1),则设置led_change_flag标志,触发灯光模式切换(current_led循环递增0-10)。检测完成后关闭VDD以节省功耗。该设计实现了声音控制的灯光模式切换功能。
2025-09-30 16:26:31
229
原创 TF卡的存储数据结构—fat32格式
FAT32文件系统查找数据流程可概括为:1. 从DBR引导扇区获取关键参数,包括FAT表位置、簇大小等;2. 通过根目录起始簇号定位目录内容;3. 在目录项中查找目标文件,获取其起始簇号;4. 根据FAT表簇链依次访问数据簇。整个过程通过簇号链式访问实现文件定位,目录项存储关键元数据,FAT表维护簇的分配关系。系统需结合目录项属性和FAT表才能区分数据簇与目录簇。
2025-09-19 21:36:20
1826
原创 太阳能板的频率响应(供电的同时保持高频率响应,太阳能灯防止被自身照灭)
本文探讨太阳能板同时实现电池充电与高频响应的解决方案。研究发现,太阳能板内部结电容与电池等效阻抗会形成RC低通滤波器,导致高频信号被短路。通过借鉴Bias-Tee设计,利用电感和电容对不同频率的特性差异,为直流和交流电创建独立通路:电感允许直流充电,电容耦合交流信号至检测电路。文章还提出两种优化方案:使用低输入阻抗电流放大器或并联小电阻进行电流-电压转换,以减小RC时间常数。这些方法在保持充电功能的同时,显著提升了系统的频率响应能力,为类似应用提供了创新思路。
2025-09-10 11:40:58
1235
原创 极简版SSD1306OLED驱动代码(可用在八位单片机)
本文介绍了一种基于8位单片机的OLED显示驱动方案,通过IIC协议直接驱动SSD1306芯片控制的128×64点阵OLED屏幕。方案采用无缓存设计,直接发送显示数据以节省资源,详细实现了IIC通信协议、OLED初始化、字符/字符串显示、数字输出等功能。文中提供了完整的代码实现,包括IIC底层驱动、字模数据、OLED控制函数以及一个实际应用示例,展示了如何显示多通道电压值。该方案适用于资源受限的嵌入式系统,具有代码精简、占用内存少的特点,可广泛应用于各种需要小型显示屏的项目中。
2025-08-26 00:17:09
350
原创 一种提升EEPROM寿命的方法(提升100倍,已用在量产项目)
本文提出了一种延长EEPROM使用寿命的有效方法。针对EEPROM仅有约1万次写入寿命的局限性,通过均衡磨损策略将寿命提升约128倍至128万次。该方法利用EEPROM闲置空间,采用地址轮询写入机制,并设计标志位循环更新策略,确保每次写入分散到不同存储单元。实现过程包括:初始化时通过二分查找定位最新数据,每次写入时递增地址并更新标志位,当地址回绕时翻转标志位进入新周期。该方案仅需在上电时增加约36.8ms的查找时间,即可显著提升设备可靠性,特别适用于需要频繁保存少量数据的物联网和工业控制场景。
2025-08-20 00:28:48
769
原创 大面积金属触摸干扰问题与如何解决(调试)
本文介绍了电容式和电阻式触摸原理,重点分析了电容式触摸的硬件构成和软件处理方式。针对大面积金属触摸存在的干扰问题,提出了硬件隔离和软件滤波的解决方案。在调试过程中,发现传统有线串口调试会导致触摸值不准,经测试采用无线蓝牙模块传输数据能有效解决该问题。最后讨论了特定区域屏蔽触摸功能的方法,建议优先硬件调整,必要时可通过软件处理或增加导电胶带辅助实现。文章系统梳理了金属表面触摸感应技术的关键问题和实用解决方案。
2025-07-20 01:07:19
746
原创 低成本充电放电判断方法
电池电量检测方法主要有三种:电压法、库仑计数法和阻抗跟踪法。电压法成本最低但精度差,需区分充放电状态建立电压-电量对应关系;库仑计数法通过电流积分计算电量,精度较高但存在累积误差;阻抗跟踪法采用专用芯片,精度最高但成本较高。简易实现可采用电压法,通过实验建立不同状态下的电压区间划分,并设置电量更新频率限制来平滑显示。充电时电量只增不减,放电时只减不增,同时需处理功率波动问题。
2025-07-09 16:54:59
1227
原创 如何显著延长EEPROM寿命:提高方法与实战代码
然而,其有限的擦写次数(通常为10万~100万次)可能成为长期稳定运行的瓶颈。本文提供可以提高寿命的方法并提供可以实现的代码。还没有编写代码,作者的代码用在家电类产品,要求没有那么高,一般不需要这方面的代码,有什么好的建议都可以和我交流探讨,私信加入我的qq群一起探讨,有什么好的方法可以一起分享。以下的代码可以大大延长eeprom的寿命,下面是存放家用电器工作模式的数据。,满足绝大多数严苛场景需求。利用硬件定时器定期切换存储区域,即使无数据更新也分散潜在写入。最大化每次写入的“数据价值”,避免无效写入。
2025-04-08 22:43:19
1143
1
原创 qt实践教学(编写一个代码生成工具)持续更新至完成———
我的想法是搭建一个和STM32cubemux类似的图形化代码生成工具,可以把我平时用到的代码整合一下全部放入这个软件中,做一个我自己专门的代码生成工具,我初步的想法是在下拉选框中拉取需要配置的功能,然后就弹出对应的脚位图,只需要点击芯片上的脚位就可以配置对应的端口的功能,大家有好的建议欢迎指正。本工具实时更新到完成为止,我会实时更新进度和制作中遇到的问题和想法。
2025-03-03 15:51:21
1103
原创 qt控件槽信号使用方法
当用户通过点击、快捷键等方式显式触发动作时(例如点击菜单项或工具栏按钮)。:当下拉框的当前索引发生变化时(无论是用户交互还是通过代码。:当用户手动选择下拉框中的某一项时(通过点击或键盘选择)。:当用户通过鼠标悬停或键盘导航高亮某一项时(未实际选中)。:当鼠标悬停在动作关联的控件上时(例如悬停在菜单项上)。:当下拉框的当前文本发生变化时(用户交互或代码修改)。:当动作的属性(如文本、图标、启用状态)发生变化时。:执行动作对应的主要逻辑(如保存文件、复制内容)。:处理可切换的动作(例如显示/隐藏面板)。
2025-03-03 14:44:43
708
原创 从51到STM32:PWM平滑迁移方案
从51到STM32的PWM开发迁移,核心在于从软件模拟转向硬件外设的思维转变。通过合理利用STM32的硬件定时器资源,不仅可以减少CPU开销,还能实现更高精度的PWM控制。建议结合STM32CubeMX工具快速入门,再逐步深入理解寄存器级配置。如果从来没有用过stm32推荐观看STM32入门教程-2023版 细致讲解 中文字幕_哔哩哔哩_bilibili来配置文件。51是配置寄存器,stm32官方有标准库可以调用,开发更加方便。
2025-02-05 10:42:52
1783
原创 RAM,ROM,以及各种存储名称的含义/在单片机的对应
利用双稳态触发器来存储数据,只要电源持续供电,数据就可以一直保持,不需要定期刷新。其优点是速度快,但集成度低、成本高,常用于高速缓存(Cache)等对速度要求极高的场景。利用电容存储电荷来表示数据,由于电容会漏电,所以需要定期对存储的内容进行刷新以保持数据的正确性。DRAM 的集成度高、成本低,但速度相对较慢,是计算机主内存的主要组成部分。
2025-01-14 17:27:30
1405
原创 RISC单片机模拟PWM调光,多路PWM输出
如果在主循环里面通过延时来实现PWM或通过主循环轮询来达到PWM效果,如果用延迟进行模拟PWM会影响主程序其他代码的执行,如果用轮询的方法虽然可以降低对主程序的影响,但是还是会影响到,这里我们使用中断的方法来实现模拟PWM,这种方法可以同时模拟多路PWM。频率:PWM调到80HZ以上人眼基本看不出灯光的闪烁。
2025-01-08 18:02:37
497
原创 人体感应设计方案
人体感应方案利用热释电红外传感器(PIR)来探测人体发出的红外辐射,并将其转换为电信号进行处理,从而实现人体存在和活动的监测。这种方案广泛应用于智能家居、安防监控、医疗保健等领域。
2024-09-24 15:28:33
1320
原创 RISC单片机EEPROM实战/IIC通讯
EEPROM(Electrically Erasable Programmable Read-Only Memory)是一种电子可擦可编程只读存储器。它结合了EPROM(Erasable Programmable Read-Only Memory,可擦可编程只读存储器)的可擦除特性和EEPROM的电气编程能力,使得数据可以在不需要从电路板中移除芯片的情况下进行擦除和重新编程。电可擦除。
2024-08-29 16:19:52
2407
原创 精简指令集(RISC)单片机延时的延时函数时间计算
周期:振荡周期:时钟周期也称为振荡周期,定义为时钟频率的倒数。12MHz晶振的时钟周期就是1/12 us、1MHz就是1us。状态周期:2个振荡周期为1个状态周期。机器周期:1个机器周期含6个状态周期,12个时钟周期。指令周期是取出一条指令并执行这条指令的时间。12MHz晶振的机器周期就是12*1/12us=1us。指令周期:完成一条指令所需的时间就是指令周期,不同的指令,指令周期也不一样。它是指CPU完成一条操作的所需的全部时间。机器周期=6状态周期=12振荡周期。
2024-08-22 14:04:55
2468
原创 电池充放电芯片汇总/持续更新中》》
DW01AZ 是为单节锂离子电池供电系统(例如手机电池包)而设计的专用芯片,用来防止锂离子电池因 为过充电、过放电和(或)过流造成损坏或寿命减少。超小型的封装和较少的外部元件需求,使 DW01AZ 可 以完美的集成到有限的电池包空间中去。精确的过充电保护电压确保了安全并充足的充电。低功耗设计使 芯片在电池工作及储存期间静态功耗极低。
2024-08-22 09:49:19
1588
原创 winscope编译器代码编写注意事项
1.2.1 编译器默认占用前七个寄存器地址,请勿重复定义1.2.2 局部变量能正常使用,但是目前还不能查看变量的值,建议使用全局变量进行操作,考虑到编译器的优化问题,建议声明变量时,变量前面加”volatile”修饰符,这样所有对变量的操作都不会被编译器优化掉.1.2.3 代码输入,同一行建议不要写多行代码函数带参调用及返回值不能使用单字节以上的参数,请使用单字节(unsigned char,char)参数传递或用全局变量。位定义的方法参考 C语言位域操作,如下:struct。
2024-08-19 16:16:39
772
原创 WinScopeIDE的使用/晟矽微电子IDE编译器
WinScope IDE 集成开发环境(以下简称 WinScope 或 WinScope IDE)是上海晟 矽微电子有限公司为开发 SINOMCU 单片机产品而开发的一个可实时仿真的专用 开发平台。
2024-08-16 16:34:56
3288
SCMCU单片机C语言程序设计指南(中微编译器)
2025-08-22
中微芯片触摸库更新版本(省空间可以节省一半多的程序空间),已经用在实际的项目中
2025-07-02
【嵌入式开发】兼容中微自动生成触摸工具的优化C库:降低程序空间占用与功耗并提升功能扩展性
2025-04-09
8位CMOS单片机SC8P8122的结构特性与应用手册
2025-02-06
p02用户手册/技术手册
2024-08-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅