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),仅供参考