尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
10分钟刷出第一个固件:QMK 自定义键盘上手教程
10分钟刷出第一个固件QMK 自定义键盘上手教程【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware编译一条命令刷写一条命令你就能看到自己改的键位真正在键盘上生效。QMKqmk_firmware是面向 Atmel AVR 与 Arm USB 微控制器的开源键盘固件解决的核心问题是让你的键盘每个按键都按你的意思工作而不是出厂默认。它解决什么问题QMK 的定位很直接一块带 AVR 或 Arm MCU 的键盘市售客制化键盘、自焊板子装上它之后键位、层、宏、灯光全部用代码定义。它和默认方案的差异在于原厂固件的键位是锁死的QMK 里每个按键对应一行KC_XXX代码改一个字符就换一次功能还能叠加层切换、宏、字符串发送这些扩展能力。它适合两类人手里有一块支持的键盘支持的键盘列表 里有上千种型号想深度定制的以及自焊键盘、需要自己定义矩阵的人。下图就是一块完全手焊的键盘QMK 同样能驱动从0到第一次成功整个过程 5 步全部在终端完成。1. 克隆仓库拿到 QMK 固件源码和全部键盘定义。git clone https://gitcode.com/GitHub_Trending/qm/qmk_firmware看到仓库目录展开、最后打印Receiving objects: 100%即成功。2. 安装 Python 构建依赖qmk命令由 Python 驱动先装依赖包。cd qmk_firmware pip install -r requirements.txt # 依赖清单见 requirements.txt3. 编译固件选一块你手上有的键盘例Planck Rev6编译它的默认 keymap。qmk compile -kb planck/rev6 -km default # -kb 键盘路径-km keymap名终端跑完会打印固件大小并生成planck_rev6.hex文件。4. 让键盘进入 bootloader多数键盘按QK_BOOT键默认绑定 Esc 长按或点一下 PCB 上的 RESET 按钮电脑会识别出一个新的 DFU 设备。5. 刷入固件编译和烧录合成一步。qmk flash -kb planck/rev6 -km default刷写完成后键盘自动重启按键恢复响应。如果不想每次敲参数可先执行qmk config user.keyboardplanck/rev6设为默认之后只敲qmk compile。选一个场景玩起来新建自己的 keymap改一个键想要的效果把 Caps Lock 换成 Esc。先建一个属于你自己的 keymapqmk new-keymap -kb planck/rev6 # 会在 keymaps/用户名/ 下生成模板打开生成的keymap.c把KC_CAPS改成KC_ESC重新编译刷入按一下原 Caps 键位置验证它现在输入 Esc。加一层把功能键藏到第二层想要的效果手指不用离开主键区就能切层。在keymap.c里定义第二层并用TG(1)做切换键// keymap.c 中[0] 为主层[1] 为第二层 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] { [_default] LAYOUT( ... ), // 主层把某键换成 TG(1) [_func] LAYOUT( ... ) // 第二层放 F13/F14 等 };刷入后按下TG(1)键键盘切到_func层再按一次切回。层机制全文见 层功能文档。一个键发送整段文字想要的效果按一下键直接输入一句常用语工号、签名。在keymap.c里实现宏回调const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { if (record-event.pressed id 0) { SEND_STRING(your-name); // 要发送的字符串 } return MACRO_NONE; }把某键绑成KC_MACRO(0)刷入后按一下该键屏幕上直接出现字符串。宏机制见 宏功能文档。翻车急救包现象qmk compile报No rule to make target原因-kb写错了键盘路径仓库里找不到该目录解法到 keyboards/ 目录里核对实际路径如planck/rev6注意区分大小写现象命令找不到qmk或编译中途报 Python 相关错误原因依赖没装全或 Python 版本不对解法确认 Python 3 环境重跑pip install -r requirements.txt仍不行看 构建 FAQ现象qmk flash提示找不到设备原因键盘没进入 bootloader 模式还在跑旧固件解法重新按QK_BOOT或 RESET 按钮等系统识别到新 DFU 设备后再刷各键盘的进 bootloader 方式见 刷写指南现象编译通过但刷入报固件超出芯片容量原因调试输出等占用了 flash 空间解法在 keymap 的config.h加#define NO_DEBUG或在rules.mk里关掉CONSOLE_ENABLE后重编现象按某个键输出的是旁边那个键的字符原因keymap 的 LAYOUT 顺序和键盘矩阵不一致解法对照keymap.c顶部注释的 LAYOUT 模板逐位核对缺位必须保留占位接下来全部 CLI 命令compile、flash、find、console的完整参数所有可配置项feature 开关逐项说明基础按键码 和 扩展按键码写 keymap 时查表用测试与调试指南按键行为不对时从这里排查下一步建议打开你键盘对应的keyboards/目录看它的 README确认QK_BOOT绑定然后把主层里最让你难受的那个键改掉——编译、刷入、验证十分钟一个循环。【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

Comsol电池液冷板流道拓扑优化:从建模到工程落地全解析

Comsol电池液冷板流道拓扑优化:从建模到工程落地全解析

做电池液冷板仿真的人,基本都走过这样一条路:先拍一个蛇形流道或者平行流道,调几个参数,把压降和最高温度调到“看起来还行”,然后项目就结了。但“还行”和“最优”之间,其实差着一次拓扑优化的距离。用 C…

📅 2026/9/11 6:41:27
基于java+ssm的软件项目管理系统的设计与实现(源码+lw+部署文档+讲解等)

基于java+ssm的软件项目管理系统的设计与实现(源码+lw+部署文档+讲解等)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

📅 2026/10/21 17:45:54
SCADA数据采集与监控系统方案合集:从架构设计到工程落地实践

SCADA数据采集与监控系统方案合集:从架构设计到工程落地实践

很多刚入行的朋友拿到一套SCADA方案资料,第一反应往往是:先看架构图,再看点位表,最后花半小时琢磨那几十页PPT到底哪里能直接抄。作为常年跟数据采集与监控系统打交道的人,我拿到这套“20份SCADA数据采集与监控系统方案…

📅 2026/9/28 23:02:55
MORE NEWS

更多资讯

📰

C++格式化输出三套体系:printf、cout与std::format深度对比

1. 项目概述:为什么“C 占位符”突然成了高频学习关键词?最近在几个技术社区和初学者交流群中,频繁看到“C 占位符”被单独拎出来讨论——不是作为某本教材里的一个冷门小节,而是作为独立的学习主题被反复提问:“C里到…

📰

以太坊三棵树设计解析:MPT与状态存储优化

1. 以太坊三棵树的核心设计理念以太坊区块链系统中状态树、交易树和收据树的设计,本质上是为了解决区块链三元悖论中的状态存储难题。传统区块链系统如比特币采用UTXO模型,交易本身就是状态,而以太坊作为图灵完备的智能合约平台,需…

📰

NY8B062F嵌入式选型与ADC/PWM工程实践指南

1. 为什么是NY8B062F?——从“够用”到“刚刚好”的选型逻辑我第一次在某嵌入式小家电项目里看到NY8B062F这个型号,心里其实是有点嘀咕的:九齐这个品牌不像ST或NXP那样铺天盖地,资料也不像主流MCU那样堆满论坛和中文社区&#xff…

📰

PDF在线阅读器源码:Canvas渲染与移动端Range分片实现

简介:面向Web端PDF阅读与在线编辑场景的实战源码包,适合具备Java与前端基础、希望打通PDF解析、渲染与交互链路的开发者参考。内容围绕PDF格式解析、页面渲染和在线编辑三条主线展开:既涉及用PDFBox读取文档、通过PDFRenderer将页面转为位图并…

📰

以太坊三棵树架构解析与MPT优化实践

1. 以太坊三棵树架构概述在以太坊区块链系统中,状态树、交易树和收据树构成了核心数据结构三叉戟。这个设计源于对BTC简单Merkle树的创新性改进,专门针对以太坊智能合约平台的复杂需求而打造。我最早接触这个概念是在2017年开发DApp时遇到的存储查询性能…

📰

多目标优化中的决策变量关系建模与算法设计

1. 多目标优化问题概述在工程设计和科学计算领域,我们经常面临需要同时优化多个相互冲突的目标函数的情况。这类问题被称为多目标优化问题(Multi-objective Optimization Problem, MOP)。与单目标优化不同,多目标优化的解通常不是一个单一的最优解&#…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬