concrete flowers cor:QMK 固件中 ATmega32u4 扩展 65% 键盘的构建、烧录与配列配置指南
2026/9/19 21:19:46 网站建设 项目流程

concrete flowers cor:QMK 固件中 ATmega32u4 扩展 65% 键盘的构建、烧录与配列配置指南

【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware

本篇技术指南以 QMK Firmware 仓库中 concrete flowers cor 的 readme 为主体,结合其数据驱动配置 keyboard.json、矩阵图 matrix_diagram.md 与默认键位图 keymap.c,系统讲解这款"exploded 65% + 宏列"键盘的硬件规格、编译烧录流程、Bootloader 进入方式以及矩阵与配列结构。读完本文,你将掌握该键盘在 QMK 环境下的完整编译与刷写命令,理解其 5×17 扫描矩阵与四种 ANSI 配列的映射关系,并能基于默认键位图快速定制自己的布局。

键盘概览

concrete flowers cor(下称 cor)是维护者 Ramon Imbao 设计的一款exploded 65%键盘,特色是在标准 65% 布局的右侧额外增加了一列宏键(Fn、Page Up/Page Down、Delete 及方向键所在列),并将 F 区功能键以竖排方式置于左侧。官方 readme 将其描述为 "An exploded 65% with a macro column"。

  • 键盘维护者:Ramon Imbao
  • 硬件支持:ATmega32u4(AVR 平台)
  • Bootloaderatmel-dfu

仓库内该键盘的目录结构如下:

keyboards/concreteflowers/cor/ ├── keymaps/ │ └── default/ │ └── keymap.c # 默认键位图(两层,使用 LAYOUT_ansi_blocker_split_bs) ├── keyboard.json # 数据驱动配置(矩阵、USB 描述符、特性开关、配列) ├── matrix_diagram.md # 矩阵与按键位置对照图 └── readme.md # 官方使用说明(构建 / 烧录 / Bootloader)

硬件规格与数据驱动配置(keyboard.json)

cor 采用 QMK 的**数据驱动配置(Data-Driven Configuration)**方式定义硬件,所有关键信息集中在 keyboard.json 中,无需传统的rules.mk/config.h手工配置。核心字段如下:

配置项说明
keyboard_namecor键盘名称,也是make目标的一部分
manufacturerconcreteflowers制造商标识
maintainerramonimbao维护者 GitHub 用户名
processoratmega32u4AVR 主控,支持原生 USB
bootloaderatmel-dfuAtmel DFU 引导程序(见下文"烧录"一节)
diode_directionCOL2ROW二极管方向:列→行,决定矩阵扫描逻辑
usb.vid/usb.pid0x5001/0x0002USB Vendor/Product ID,设备版本1.0.0

矩阵引脚与特性开关

matrix_pins定义了 5 行 × 17 列的扫描矩阵:

  • 行(rows)F0F1F4B3B6
  • 列(cols)F5F6F7C6C7B1B7B5B4D7D6D4D5D3D2D1D0

特性开关(features)中启用了bootmagic(Bootmagic 复位)、extrakey(媒体键等额外 HID 按键)与mousekey(鼠标键),并显式关闭了nkro(即默认 6KRO,走标准 HID 键盘报告)。这些字段与 data/schemas/keyboard.jsonschema 中定义的键值对应,属于 QMK 数据驱动配置的标准能力。

构建固件

设置好 QMK 构建环境后,在仓库根目录执行以下命令即可编译默认键位:

make concreteflowers/cor:default
  • concreteflowers/cor为键盘目标路径(对应keyboards/concreteflowers/cor/目录);
  • default为键位图目标,对应 keymaps/default/keymap.c。

编译产物为可直接烧录的.hex固件文件。若需要为同一键盘编译自定义键位,将default替换为你自己的键位图目录名即可(例如make concreteflowers/cor:mykeymap)。

烧录固件与 Atmel DFU Bootloader

cor 出厂自带Atmel DFU引导程序。正如 docs/flashing.md 所述,所有带原生 USB 的 AVR 主控(16/32U4RC 除外)默认都使用该 Bootloader,常见于 PCB 上集成自家主控的键盘。

执行烧录命令:

make concreteflowers/cor:default:flash

:flash目标中,QMK 会依据bootloader: atmel-dfu自动选择配套的烧录工具(AVR 平台下对应avrdude配合 DFU 编程器)。请确认系统已安装对应的刷写工具,并保证设备以 DFU 模式接入电脑。

注意:官方 readme 中烧录示例写作make concrete flowers/cor:default:flash,其中包含多余空格,实际可用的目标路径应为concreteflowers/cor(与构建命令保持一致),本文已按正确格式给出。

进入 Bootloader 的三种方式

readme 明确列出了进入 DFU Bootloader 的三种方法,与 QMK 的标准机制一致:

  1. Bootmagic 复位:按住键盘左上角键的同时插入 USB 线(键盘features.bootmagic已开启,见 keyboard.json)。
  2. 物理复位按钮:短按 PCB 背面的复位按键。
  3. 键位图中的 RESET 键码:如果当前键位图将某个按键映射为RESET,按下即可进入 Bootloader。

第 2、3 种方式分别依赖硬件复位电路与 QMK 的RESET量子键码实现;第 1 种方式则对应 QMK 的 Bootmagic Lite/完整版功能,是无需拆机即可刷机的常用手段。

矩阵结构与配列(Layout)解析

矩阵图:5×17 扫描布局

matrix_diagram.md 给出了完整的矩阵对照图:每一格以"行号+列号"十六进制形式标注(如000E4G等),其中:

  • 首行(row 0)横跨数字区至 2U 退格键与 Delete 键;
  • 最右侧一列(下标 G 对应 matrix col 16)即为宏列:Page Up、Page Down、Fn 与方向键;
  • 底部行(row 4)为左 Ctrl / GUI / Alt、6.25U 空格以及右侧 Alt / Ctrl,构成 Blocke 风格底排。

四种 ANSI 配列与 layout_aliases

keyboard.json 定义了四种物理配列:

配列名称特点
LAYOUT_ansi_blocker标准 2U 退格键、右 Shift 1.75U、标准底排(左右 Alt/Ctrl 齐全)
LAYOUT_ansi_blocker_split_bs退格键拆分为两个 1U 键(matrix [0,14][0,15]),其余同 ANSI
LAYOUT_ansi_blocker_tsanganTsangan 风格底排:左 Ctrl 1.5U、GUI 1U、7U 空格、右 Ctrl 1.5U,无右侧 Alt
LAYOUT_ansi_blocker_tsangan_split_bs同时使用拆分退格键与 Tsangan 底排

同时,layout_aliasesLAYOUT_all映射到LAYOUT_ansi_blocker_split_bs,即"全键位"配列实际对应拆分退格键方案——这也是默认键位图所使用的配列。

配列中的每个键位都通过matrix: [行, 列]与硬件矩阵建立映射,并以x/y坐标与w(宽度)描述在键盘上的物理位置。例如 6.25U 空格对应matrix [4,7],坐标(5, 4),宽度6.25

默认键位图(default keymap)逐层解读

默认键位图 keymaps/default/keymap.c 使用LAYOUT_ansi_blocker_split_bs,共两层:

  • 第 0 层(默认层):左侧竖排 F 区(F1–F5),标准 QWERTY 字母区,右侧宏列为 Page Up / Page Down /MO(1)/ 方向键;底排为 Ctrl / GUI / Alt、6.25U 空格、右 Alt / Ctrl;MO(1)即按住右下角 Fn 键临时切换层。
  • 第 1 层(Fn 层):将顶层退格键区域映射为KC_GRV与 F1–F12 功能键(借助拆分退格键的两个 1U 键位实现 12 个 F 键全覆盖),并将宏列中的 Page Up / Page Down 映射为KC_HOME/KC_END,其余键位以_______(透明)继承第 0 层定义。

键位图通过#include QMK_KEYBOARD_H引入 QMK 的键码与配列宏定义,keymaps[][MATRIX_ROWS][MATRIX_COLS]数组与配列定义一一对应。值得注意的细节:第 0 层将拆分退格的两个 1U 键都映射为KC_BSPC,等效于标准的 2U 退格手感,用户也可以将其之一改造成KC_DELETE或自定义功能键。

相关参考文件

  • 键盘官方说明:keyboards/concreteflowers/cor/readme.md
  • 硬件与配列配置:keyboards/concreteflowers/cor/keyboard.json
  • 矩阵对照图:keyboards/concreteflowers/cor/matrix_diagram.md
  • 默认键位图:keyboards/concreteflowers/cor/keymaps/default/keymap.c
  • 同系列 TKL 型号(RP2040 主控)参考:keyboards/concreteflowers/cor_tkl/readme.md
  • QMK 烧录指南(Atmel DFU 章节):docs/flashing.md
  • QMK 构建环境与 make 指南:docs/getting_started_make_guide.md、docs/newbs_building_firmware_workflow.md

【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询