- 博客(78)
- 收藏
- 关注
原创 DIY键盘教程:APM32主控
本教程介绍了如何使用国产APM32F103CBT6主控替代价格高昂的32U4芯片,打造DIY机械键盘。APM32具有超高性价比、更强性能和更多可用引脚的优势,尽管需要自行修改固件和刷写bootloader,但仍是一个近乎完美的替代方案。教程详细讲解了APM32小系统、RGB矩阵灯构建、旋钮原理图绘制和固件编写等关键步骤,并提供了PCB设计和原理图绘制的实用技巧。此外,还探讨了APM32与STM32的兼容性以及其他可能的32U4替代方案。通过本教程,读者可以在芯片价格上涨的情况下,依然享受DIY键盘的乐趣。
2025-05-19 17:03:13
772
原创 QMK键码大全
QMK(Quantum Mechanical Keyboard)是一款开源的键盘固件,允许用户完全自定义键盘功能。本文详细介绍了QMK中的键码(keycode),帮助用户打造个性化的键盘映射。键码是键盘固件中表示特定按键功能的符号或代码,包括基本键码、功能键、修饰键、Quantum特殊键码、灯光控制、层控制、多媒体控制、Unicode支持等。QMK还支持高级功能如Mod-Tap修饰键、自动Shift和动态宏,用户可以通过这些功能实现复杂的键盘操作。无论是简单的按键映射还是复杂的多层布局,QMK都提供了丰富的
2025-05-19 14:29:10
249
原创 STM32F103工程模板搭建详解:从零开始构建标准库项目
SDK(Software Development Kit,软件开发工具包)是芯片厂商为开发者提供的一套开发工具和库函数,它能让我们避免直接操作硬件寄存器,提高开发效率。为什么需要SDK?因为不同芯片的寄存器结构各不相同。例如,STM32系列就有F1、F4、L1、H7等不同系列,此外还有NXP等其他厂商的芯片。如果要为每种芯片学习其寄存器结构,将是非常耗时且低效的工作。通过SDK,我们可以使用统一的API接口,专注于功能实现而非底层细节。├── APP/ # 应用代码目录。
2025-05-19 00:34:07
811
原创 C++多态与虚函数详解——从入门到精通
本文详细介绍了C++中的多态与虚函数,通过六个实例深入讲解了多态的实现、虚函数与普通函数的区别、多层继承中的虚函数、虚析构函数的重要性、多重继承中的析构顺序以及纯虚函数与抽象类的概念。多态通过虚函数机制实现动态绑定,允许基类指针或引用调用派生类的函数,增强了程序的灵活性和扩展性。虚析构函数确保派生类资源正确释放,而纯虚函数则用于定义抽象类,强制派生类实现特定功能。理解这些概念对于掌握C++面向对象编程至关重要,并在实际开发中广泛应用于图形用户界面等场景。
2025-05-18 22:57:34
619
原创 freertos智能时钟开发环境详细搭建指南:从零开始的freertos智能时钟学习之路
F0系列:入门级,基于Cortex-M0内核,性价比高F1系列:经典系列,基于Cortex-M3内核,资料丰富(本文使用的F103就属于此系列)F2/F4系列:高性能系列,基于Cortex-M4内核,带FPUF7系列:高端系列,基于Cortex-M7内核,性能更强G0/G4系列:新一代入门和中端系列H7系列:超高性能系列,主频可达480MHzL系列:低功耗系列,适合电池供电设备WB/WL系列:无线系列,集成蓝牙、Wi-Fi等功能选择芯片时,需要根据项目需求考虑性能、外设、功耗和价格等因素。
2025-05-18 20:10:36
681
原创 QMK层系统(Layers)完全解析:从键盘小白到自定义大神
QMK层系统是机械键盘自定义的核心功能,允许用户通过多层布局扩展键盘功能。本文详细解析了层系统的基础概念、运行机制及存储方式,并介绍了七种层切换方法,如MO()、LT()、TG()等,帮助用户根据需求选择合适的切换方式。文章还提供了避坑指南,避免新手在透明键、层数限制等方面犯错,并分享了实战案例,如RGB层状态指示器、层切换优化技巧等。最后,探讨了高阶玩法,如动态层按键映射和与其他QMK功能的协作,帮助用户从键盘小白进阶为自定义大神。
2025-05-18 13:23:03
122
原创 QMK 宏(Macros)功能详解(实战部分)
QMK 宏功能允许用户通过单个按键执行多个操作,如输入文本、执行复杂按键组合或自动化重复任务。宏可以在 keymap.json 文件中定义,支持五种基本动作类型:beep、delay、down、tap 和 up。宏可以混合文本和按键操作,并支持非标准键盘布局。此外,QMK 还允许在 C 代码中定义更复杂的宏,使用 process_record_user 函数和 SEND_STRING() 宏。常见问题包括宏执行过快导致漏键,可通过添加延时解决。宏功能强大,但应避免用于发送敏感信息。
2025-05-17 17:19:27
303
原创 傅里叶变换实战:图像去噪与边缘提取
本文详细介绍了傅里叶变换在图像处理中的应用,特别是通过频域处理实现图像去噪与边缘提取。傅里叶变换将图像从空间域转换到频率域,使得图像的不同特征(如背景、纹理、边缘、噪声)在频域中得以分离,从而简化计算并实现针对性处理。文章通过Python代码实战,展示了如何使用低通滤波器去除椒盐噪声,以及使用高通滤波器提取图像边缘信息。代码部分包括傅里叶变换、低通滤波、高通滤波和逆变换的实现,并提供了详细的注释和可视化结果,帮助读者深入理解频域处理的原理和应用。
2025-05-16 23:40:47
1037
原创 【动态规划详解】最大正方形问题的优雅解法与图解分析
最大正方形问题要求在一个由 '0' 和 '1' 组成的二维矩阵中,找出只包含 '1' 的最大正方形,并返回其面积。该问题可以通过动态规划高效解决。核心思想是定义 dp[i][j] 为以 (i,j) 为右下角的最大正方形边长,状态转移方程为 dp[i][j] = min(dp[i-1][j], dp[i][j-1], dp[i-1][j-1]) + 1,取左、上、左上三个方向的最小值加1。通过遍历矩阵,逐步填充 dp 数组,最终找到最大边长并计算面积。该算法的时间复杂度为 O(m×n),空间复杂度可优化至 O
2025-05-16 22:01:23
833
原创 从裸机开发到实时操作系统:FreeRTOS详解与实战指南
本文详细介绍了从裸机开发到实时操作系统(RTOS)的过渡,重点以FreeRTOS为例,解析其核心概念、工作原理及应用场景。裸机开发直接与硬件交互,适合简单任务,但随着项目复杂度增加,面临时序依赖、阻塞问题和代码维护等挑战。通用操作系统虽功能强大,但不适合资源有限的嵌入式系统。RTOS则通过任务调度、优先级管理和实时性保障,解决了这些问题。FreeRTOS作为轻量级开源RTOS,提供了丰富的功能支持,如任务管理、同步机制和通信机制,并通过代码实例展示了任务创建、调度及任务间通信的实现。本文为嵌入式开发者提供了
2025-05-16 21:42:16
1054
原创 QMK宏全面实战教程:从入门到精通(附17个实用案例)(理论部分)
这篇教程详细介绍了QMK宏的使用方法,适合机械键盘DIY爱好者和QMK固件玩家。文章首先解释了QMK宏的概念,即通过单个按键触发复杂的输入序列,并强调了使用宏时的三大安全禁忌:不要存储密码、支付信息和隐私数据,因为这些信息在键盘固件中是明文存储的,容易被他人获取。接着,文章介绍了两种实现宏的方式:JSON配置和C语言编程,分别适合新手和进阶用户。JSON配置部分提供了五个实用案例,如中文输入法切换、表单自动填写、多媒体控制、代码模板插入和常用快捷键组合。C语言编程部分则适合需要更复杂功能的用户,并简要介绍了
2025-05-16 19:16:24
236
原创 QMK固件OLED显示屏配置教程:从零开始实现个性化键盘显示(实操部分)
本教程详细介绍了如何从零开始配置QMK固件的OLED显示屏,实现个性化键盘显示。首先,文章解释了OLED显示屏的基本概念及其在键盘中的应用,并介绍了I2C和SPI两种通信方式。接着,教程逐步指导用户如何在QMK固件中启用OLED功能,包括在rules.mk中启用OLED、在halconf.h和mcuconf.h中配置I2C功能,以及在config.h中设置I2C和OLED参数。最后,教程展示了如何在keymap.c中编写代码,实现OLED显示内容,并提供了进阶定制功能,如显示当前层信息、按键状态和QMK L
2025-05-15 23:11:55
205
原创 QMK固件OLED驱动完全指南:从入门到精通(理论部分)
本文详细介绍了如何在QMK固件下驱动OLED屏幕,从基础知识到进阶应用,涵盖了OLED驱动芯片选择、通信接口、接线指南、QMK环境配置、OLED功能启用与参数设置、基础渲染功能实现以及进阶显示效果开发。文章特别推荐初学者使用SSD1306芯片的OLED模块,并提供了详细的代码示例,帮助读者实现键盘状态显示、层信息展示、LED状态显示、QMK Logo显示以及动画效果等。通过本文,读者可以全面掌握QMK固件下OLED驱动的开发技巧,打造个性化的键盘显示效果。
2025-05-15 15:29:34
122
原创 QMK键盘固件旋钮编码器(Encoder)配置详解(实操部分)
本文详细介绍了如何在QMK固件中配置和使用编码器(旋钮),涵盖了从基础到进阶的操作步骤。首先,通过创建rules.mk文件启用编码器映射功能,并在keymap.c中定义不同层级下的旋钮行为。接着,在keyboard.json文件中配置硬件引脚信息。文章还深入讲解了编码器的工作原理和分辨率设置,并提供了多编码器配置、方向翻转、分体键盘特殊配置等进阶技巧。此外,针对常见问题如编码器不工作或方向错误,给出了解决方案。最后,文章展示了编码器在多媒体控制、RGB灯效调节和软件缩放等高级应用中的使用案例。通过本文,即使
2025-05-15 12:41:26
555
原创 QMK键盘编码器(Encoder)(理论部分)
本文详细介绍了QMK键盘编码器的配置与使用,涵盖了从基础到进阶的全面内容。首先,文章解析了编码器的基本概念和硬件连接要点,强调正确的接线是确保功能正常的基础。接着,文章详细说明了在QMK固件中启用和配置编码器的步骤,包括定义引脚和调整旋转方向与灵敏度。对于高阶用户,文章还介绍了多编码器配置、分体键盘的特殊设置以及通过图层映射和回调函数实现复杂功能的方法。此外,文章提供了硬件优化技巧,如引脚复用和防抖配置,以及实战排障的常见问题诊断和调试技巧。最后,文章给出了编码器硬件选择的建议和实现高级功能的思路,为键盘爱
2025-05-14 13:05:01
224
原创 QMK RGB矩阵灯效配置详解:从理论到实践(实操部分)
本文详细介绍了如何在QMK固件中配置RGB矩阵灯效,从基础理论到实际实现。首先,通过rules.mk和config.h文件启用RGB矩阵功能,并选择合适的驱动方式(Bitbang或PWM)。Bitbang驱动兼容性好但CPU占用率高,而PWM驱动效率更高但需要特定引脚支持。配置过程中需定义LED矩阵的物理布局、引脚连接及驱动参数,并通过编译验证配置的正确性。无论是初学者还是有经验的开发者,本文都提供了详细的步骤和代码示例,帮助用户打造个性化的RGB键盘灯效。
2025-05-14 12:21:23
199
原创 QMK键盘固件中LED锁定指示灯的配置与使用详解(实操部分+拓展)
QMK键盘固件中LED锁定指示灯的配置与使用详解 本文详细介绍了如何在QMK固件中配置和使用LED锁定指示灯。首先,通过config.h文件定义LED引脚和点亮状态,完成基础配置。对于分体键盘,需启用SPLIT_LED_STATE_ENABLE以实现LED状态同步。QMK支持五种标准LED指示灯,包括Num Lock、Caps Lock等。获取LED状态的方法包括配置选项、自定义回调函数和调用状态函数。config.h提供了丰富的配置选项,如LED_PIN_ON_STATE,用于定制LED行为。通过实现le
2025-05-12 18:46:39
221
原创 键盘RGB矩阵与LED指示灯(理论部分)
本文探讨了键盘RGB矩阵与LED指示灯的理论基础。首先,介绍了LED指示灯的作用及QMK固件支持的5种LED状态(如Num Lock、Caps Lock等),并详细说明了获取LED状态的三种方法:通过config.h配置、实现led_update_*函数或调用host_keyboard_led_state()函数。接着,文章讨论了WS2812可寻址RGB LED的配置,包括引脚设置、字节顺序、RGBW支持及驱动程序选择。最后,介绍了RGB矩阵照明系统的配置与自定义效果实现,支持多种动态灯光效果,并允许用户通
2025-05-12 12:32:58
214
原创 QMK自定义4*4键盘固件创建教程:最新架构详解
本教程详细介绍了如何在QMK框架下创建自定义4*4键盘固件。首先,需在QMK的keyboards目录下创建自定义键盘文件夹,并依次创建核心文件:rules.mk(编译选项和功能开关)、键盘头文件(定义矩阵布局)、C源文件、config.h(硬件和功能配置)、keymap.c(按键映射)以及keyboard.json(键盘信息配置)。最后,通过QMK MSYS终端编译固件。通过这些步骤,用户可以轻松构建自己的键盘固件,实现个性化功能。
2025-05-10 17:47:43
339
原创 QMK键盘固件开发全解析:QMK 固件开发的最新架构和规范(2025最新版)
QMK键盘固件开发全解析(2025最新版)深入探讨了QMK的最新架构和开发规范,为键盘DIY爱好者提供了从入门到进阶的全面指导。文章首先介绍了QMK的文件结构和命名规范,强调了使用qmk lint工具进行代码检查的重要性。接着,详细讲解了键盘项目的命名规范和组织结构,确保代码库的整洁和一致性。随后,文章深入解析了开发QMK键盘所需的必要文件,包括readme.md、info.json、config.h和rules.mk,并提供了具体的配置示例和最佳实践。通过本文,读者将能够快速掌握QMK开发的核心技巧,提升
2025-05-10 12:31:08
488
原创 【QMK键盘】零基础搭建QMK固件环境完全攻略
本文详细介绍了QMK键盘固件环境的零基础搭建流程,适合所有客制化键盘爱好者。文章首先解释了QMK固件的功能与价值,然后全面介绍了支持QMK的主控芯片类型。核心内容包括三大部分:QMK MSYS环境安装、QMK固件源码获取(提供三种方法)以及编译测试。文章还详细讲解了环境配置优化技巧,包括编辑工具选择、环境变量设置等。全文步骤清晰,配有截图指导,并提供了网络问题解决方案和进阶技巧,是客制化键盘玩家入门QMK的必读教程。
2025-05-10 00:27:15
375
原创 VS Code配置指南:打造高效的QMK开发环境
本文详细介绍了如何使用Visual Studio Code(VS Code)配置高效的QMK固件开发环境。VS Code作为一款功能强大的代码编辑器,具备智能代码补全、便捷的代码导航、强大的重构工具、一键构建、集成Git图形界面、丰富的调试功能、代码格式化和调用层次结构显示等优势,能够显著提升开发效率。文章从VS Code的下载与安装开始,逐步指导用户选择合适的安装包,并详细讲解了安装步骤。接着,文章对VS Code的界面进行了全面解析,帮助用户熟悉各个功能区域。最后,文章介绍了如何配置中文界面、C/C++
2025-05-09 21:43:30
502
原创 QMK键盘固件开发零基础教程(2025全新重制版)
《QMK键盘固件开发零基础教程(2025全新重制版)》是一套专为键盘爱好者和开发者设计的全面教程,旨在帮助用户从零基础快速掌握最新的QMK固件开发技术。教程基于2025年最新的QMK版本(0.19.8+),解决了旧版教程中的诸多问题,如概念不清、步骤缺失和代码过时等。新版教程提供了详细的图解、完整的项目源码以及从环境配置到高级功能开发的全流程指导。此外,教程还涵盖了2024年QMK生态的重大变革,包括键码系统的重构、编译工具链的更新以及Config文件格式的改变等。付费版教程额外提供独家内容,如新特性解析、
2025-05-09 20:45:47
256
原创 RGB矩阵照明系统详解及WS2812配置指南
定义值描述0x00无标志0xFF包含所有标志0x01修饰键LED0x02底光LED0x04按键背光LED0x08键盘状态指示LEDRGB矩阵照明系统为键盘提供了丰富多彩的灯光效果,而WS2812作为其中最流行的LED驱动方案,具有简单易用、成本低廉的特点。通过本文的配置指南,您应该能够轻松地为自己的键盘项目添加绚丽的灯光效果,打造专属的个性化键盘。希望这篇指南对您有所帮助!如果遇到任何问题,欢迎查阅官方文档或在社区中寻求帮助。
2025-05-09 19:28:52
1209
原创 QMK开发环境搭建指南:Eclipse和VS Code详解
通过本教程,我们详细介绍了如何使用Eclipse和VS Code两种IDE配置QMK固件开发环境。无论你偏好哪种IDE,都能获得比纯文本编辑器更高效的开发体验。调试功能的加入更是让固件问题定位变得简单直观。希望这篇教程对你的QMK开发之旅有所帮助!如有任何问题,欢迎在评论区留言交流。后续会带来更多键盘开发相关教程~
2025-05-08 13:01:05
878
原创 键盘固件刷写详解:Bootloader
引导加载程序是预装在微控制器中的一段特殊程序,它允许我们通过USB接口更新键盘的固件,而无需使用专业的硬件编程器。不同厂商和芯片使用的引导加载程序各不相同,所以刷写方法也有所区别。软件重置:按下映射到QK_BOOT的按键硬件重置按下PCB上的RESET按钮(如果有)短接RST和GND针脚特定引导加载程序可能有特殊方法(如RP2040的BOOTSEL按钮)本文详细介绍了各种引导加载程序的特性和刷写方法,希望能帮助各位键盘爱好者更好地理解和掌握固件刷写技术。
2025-05-08 12:53:07
1333
原创 Docker 快速入门指南:轻松构建 QMK 键盘固件
本文详细介绍如何利用 Docker 容器技术,在不改变主机系统的情况下,轻松构建和刷写 QMK 键盘固件。即使您是 Docker 新手,也能快速上手!
2025-05-08 12:39:42
605
原创 QMK键盘固件自定义指南 - 打造你的专属键盘体验
创建自定义键码的第一步是枚举它们。QMK提供了SAFE_RANGE宏来确保你的自定义键码获得唯一的编号。BAR通过这段代码,你可以在键盘映射中使用FOO和BAR两个自定义键码。QMK中的键盘映射保存在数组中,最多可以定义32个图层(0-31),较高的图层具有优先权。- 表示基本键盘映射层(0-31)- 在其位中保存每个图层的开/关状态QMK提供了极其强大且灵活的键盘自定义能力,从简单的键位重映射到复杂的宏和功能。创建自定义键码并定义其行为设置多层键盘映射实现不同功能。
2025-05-08 12:36:31
1111
原创 QMK命令行工具(CLI)完全指南
在命令行中使用QMK命令时,Tab键自动补全功能可以让你按Tab键自动完成命令、参数和选项,大大提高效率并避免输入错误。支持Bash 4.2+、Zsh和FiSH等常见shell。
2025-05-08 12:18:27
481
原创 QMK配置器详解:QMK Configurator
拖放操作点击布局上的空白处,然后点击所需的键码点击布局上的空白处,然后按键盘上的物理键技巧:将鼠标悬停在一个键上,会显示这个键码的简短说明。如需更详细的描述,请参考基本键码参考和高级键码参考文档。如果你选择的布局与物理构建不完全匹配,请将未使用的键留空。对于不确定使用哪个键的情况(例如有一个退格键但布局中有2个位置),可以在两个位置放置相同的键码。QMK Configurator是一个强大的工具,能让键盘爱好者轻松定制自己的键盘。
2025-05-08 11:48:43
777
原创 QMK键盘固件配置详解
通过QMK的丰富配置选项,我们可以实现键盘的高度定制化。从简单的矩阵定义到复杂的分体键盘通信,从基础按键去抖到花哨的RGB灯效,QMK几乎能满足所有DIY键盘爱好者的需求。希望这篇教程对你有所帮助!如果你还有疑问,欢迎在评论区留言交流。参考资料QMK官方文档QMK GitHub仓库机械键盘DIY社区。
2025-05-07 23:27:13
1433
原创 C语言从入门到精通:历史、应用与开发环境全解析
C语言作为系统级编程语言,虽然学习曲线较陡,但掌握它将为你打开底层编程的大门选择开发工具时应根据自己的操作系统和个人喜好,不必拘泥于某一种工具初学者可先使用IDE降低入门难度,熟练后可尝试命令行方式以更好地理解编译过程学习C语言最重要的是理解其核心概念(如指针、内存管理),而非仅仅记忆语法。
2025-05-07 00:22:00
1028
原创 QMK固件旋钮编码器(Rotary Encoder)完全指南
旋钮编码器是提升自定义键盘功能性的绝佳方式,通过QMK固件可以轻松配置各种实用功能。希望本指南能帮助你在自己的键盘项目中顺利使用旋钮编码器!QMK官方文档-编码器EC11编码器数据手册。
2025-05-02 10:55:59
1166
原创 QMK固件中LED指示灯与RGB灯详解指南
常用的RGB灯内部集成了WS2812芯片,该芯片负责将MCU发送的信号解码成对应的RGB颜色值。// 大写锁定指示灯// 将Caps键的灯设为红色// 层级指示灯 - 当切换到FN层时底灯变绿if (get_highest_layer(layer_state) == 1) { // FN层编号为1i++) {// 绿色RGB灯光系统为键盘带来了无限可能,从简单的指示功能到复杂的动画效果,都可以通过合理的配置实现。希望本教程能帮助大家更好地理解QMK中的灯光配置,打造属于自己的独特键盘。
2025-05-02 10:16:10
958
原创 QMK机械键盘固件开发指南:从源码到实践
键盘矩阵文件定义了键盘的物理布局,是固件开发中最重要的文件之一。这个文件将指导QMK如何理解您的键盘按键排列。/* 这个宏防止头文件被重复包含 *//* 定义键盘布局 */
2025-05-01 16:43:03
1162
原创 QMK固件烧录指南:安全高效地更新您的机械键盘
既然您已经成功构建了自定义固件文件,下一步就是将它写入键盘控制器。这个过程被称为"固件烧录"或"刷写键盘",是自定义键盘编程的最后一步,也是将您的设计真正应用到键盘硬件上的关键环节。
2025-05-01 12:46:03
1371
原创 QMK固件环境搭建详解
QMK(Quantum Mechanical Keyboard)是一款开源的键盘固件,它允许用户自定义键盘按键映射、宏和灯光效果等。本文将详细介绍如何搭建QMK环境,让您能够轻松定制属于自己的键盘固件。
2025-05-01 11:01:50
924
原创 QMK固件开发完全指南:从入门到精通
QMK固件的强大之处在于它的灵活性和可扩展性,无论您是键盘爱好者还是专业开发者,都能在这个平台上找到适合自己的应用场景。通过本文提供的学习路径,您可以系统地掌握QMK开发技能,创造出独具特色的键盘体验。记住,键盘开发是一门融合了硬件、固件和用户体验的综合技术,持续学习和实践是提升的关键!
2025-05-01 10:57:12
795
原创 C语言发展史:从Unix起源到现代标准演进
C语言从1970年代初诞生至今,历经半个世纪的发展,依然在系统编程、嵌入式开发等领域保持着强大的生命力。它的简洁、高效和对硬件的精确控制能力,使其成为了计算机科学史上最重要的编程语言之一。作为现代程序员,无论你专注于哪种编程领域,了解C语言及其发展历史都将为你提供更为深刻的技术视野和编程思维。作者:Despacito0o本文遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
2025-04-30 12:20:44
1175
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人