ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

给机械键盘换固件:QMK 编译与刷写全流程实操

给机械键盘换固件:QMK 编译与刷写全流程实操 给机械键盘换固件QMK 编译与刷写全流程实操【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmwareQMK 固件是机械键盘的大脑程序你按下物理键它决定电脑收到什么。想改按键布局、加宏、换层靠的就是编译一套属于自己的 QMK 固件再刷进键盘。本文给出两条可跑通的路径——命令行和 QMK Toolbox 图形界面——最后用一个最小的完整例子收尾。先确认两件事命令行动线与图形动线动手前先看仓库结构键盘定义在 keyboards/核心功能实现在 quantum/文档在 docs/。你的工作基本只发生在 keyboards 目录里。命令行路线只依赖 qmk 这个 CLI编译、刷写都能一条命令搞定改完重编也快适合愿意碰终端的人。QMK Toolbox 是 Windows 和 macOS 上的图形界面选文件、点按钮就能刷写适合只做一次、不想学命令的情况。两条路线最终交付物相同键盘按你的定义响应。一行命令生成你的 keymapkeymap键位映射就是哪个物理键对应什么功能的表格。先给工具设好默认值之后所有命令都省参数qmk config user.keyboardclueboard/66/rev4 qmk config user.keymapmy_custom_keymap然后生成你自己的 keymapqmk new-keymap -kb planck/rev5命令会在keyboards/keyboard/keymaps/你的用户名/下生成三个文件keymap.c、config.h、rules.mk。它不是凭空起步而是直接复制了这块键盘自带的默认 keymap所以生成完就能正常打字。全参数可查 CLI 命令说明。keymap.c 里到底改什么三个文件里90% 的情况你只会碰keymap.c。config.h放功能开关rules.mk管编译特性——后两者在需要额外功能时才动。keymap.c的核心是一个按键矩阵LAYOUT 里按行列排布 keycode键码即这个键要干什么的代号const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] { [0] LAYOUT( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, MO(1) ), // 第 [1]、[2] 层按同样格式继续写 };改哪个格哪个物理键的行为就变。基础键码查 基础按键码层切换、宏这类扩展功能查 量子按键码。编译拿到 .hex 文件才算走完一半编译命令本身很简单qmk compile -kb keyboard -km keymap # 设过默认值后直接 qmk compile产物是.hex或.bin文件落在项目根目录文件名是keyboard_keymap。这一步最容易卡住的不是命令而是 keymap.c 的语法少个逗号、括号没配对编译器会直接罢工。看报错信息定位到对应行修正后重编就行多刷几轮就顺了。刷写进 DFU 之后命令行和 Toolbox 二选一DFU 模式是键盘的刷机模式此时键盘不再当键盘而是等着接收新固件。常见进入方式同时按住两个 Shift 键 Pause同时按住两个 Shift 键 B 键拔掉键盘按住 Space B 再插回直接按 PCB 上的 RESET 按钮不同键盘方式不同以 刷写文档 为准。进入后系统会识别出 DFU 设备两条刷写路线qmk flash -kb keyboard -km keymap # 已有编译好的固件文件时 qmk flash -bl dfu -uf firmware_fileQMK Toolbox 的用法点 Open 选中固件文件确认工具栏里设备状态显示已连接 DFU点 Flash。刷写有进度显示结束后键盘自动重启。第一次刷建议走命令行它会轮询等待设备出现手抖没进 DFU 时不用反复重试命令。刷完后验证按键然后往宏、层、灯光走刷完先做全键测试QMK Configurator 自带测试模式config.qmk.fm 的 test 页逐键按一遍哪个格没反应再回头查映射。验证通过后的定制都是从 keymap.c 出发// 宏按下时发送一串字符 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { switch (id) { case 0: if (record-event.pressed) { SEND_STRING(Hello QMK!); } break; } return MACRO_NONE; }keymap 里写KC_MACRO(0)即可触发。层最多 32 个[0][1]各是一份完整布局用MO(1)按住切、TG(1)常开、TO(2)直接跳层。想开 RGB 背光在 rules.mk 加一行RGBLIGHT_ENABLE yes然后在 keymap.c 里调rgblight_sethsv(0, 255, 255)设颜色、rgblight_mode(...)设效果。每一项改完的流程都一样编译、刷写、测试。先跑通默认 keymap再一项项加比一次改完再排查省事得多。【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表