当前位置: 首页 > news >正文

做电商东莞seo外包平台

做电商,东莞seo外包平台,好的网站具备的条件,深圳的装修公司排名QMK自定义4*4键盘固件创建教程:最新架构详解 前言 通过本教程,你将学习如何在QMK框架下创建自己的键盘固件。QMK是一个强大的开源键盘固件框架,广泛用于DIY机械键盘的制作。本文将详细介绍最新架构下所需创建的文件及其功能。 准备工作 在…

QMK自定义4*4键盘固件创建教程:最新架构详解

前言

通过本教程,你将学习如何在QMK框架下创建自己的键盘固件。QMK是一个强大的开源键盘固件框架,广泛用于DIY机械键盘的制作。本文将详细介绍最新架构下所需创建的文件及其功能。

准备工作

在开始之前,我们需要理解QMK架构中必须创建的几个核心文件:

  • info.json:键盘的基本信息配置
  • config.h:硬件和功能的配置头文件
  • rules.mk:编译选项和功能开关
  • <keyboard_name>.c:键盘的主要C源文件
  • <keyboard_name>.h:键盘矩阵定义的头文件

接下来,我们将一步步实现这些文件的创建。

实操步骤

1. 创建键盘目录

首先导航到QMK固件的keyboards目录:

keyboards目录

2. 创建自定义键盘文件夹

在keyboards目录下创建一个新的文件夹,使用你自定义的键盘名称(本例中使用"despacito0o"):

创建新文件夹

文件夹创建完成

3. 打开IDE并开始编辑

使用VSCode打开刚创建的文件夹(可以直接将文件夹拖到VSCode图标上):

打开VSCode

4. 创建rules.mk文件

首先创建rules.mk文件,这是编译选项和功能开关的配置文件:

创建rules.mk

rules.mk示例

在rules.mk文件中写入以下内容:

MCU = STM32F103          # 主控型号,使用的是 STM32F103 微控制器
BOOTLOADER = stm32duino  # 启动加载器类型,使用 stm32duino 引导程序
NKRO_ENABLE = yes        # 启用 NKRO (N-Key Rollover),支持多键同时按下
EXTRAKEY_ENABLE = yes    # 启用额外按键功能,例如媒体键(用键盘控制音量大小等)
# LTO_ENABLE = yes        # 是否启用链接时优化 (Link Time Optimization),暂时不需要注释掉
rules.mk文件说明

rules.mk文件是QMK的顶级Makefile,用于设置关于MCU的信息以及启用/禁用特定功能。主要包含:

  • 构建选项:指定默认文件夹、固件格式等
  • 功能开关:通过设置yes/no来启用或禁用功能
  • MCU选项:设置微控制器类型、时钟频率等
  • 编译优化:如LTO_ENABLE可显著减少编译大小

5. 创建键盘头文件

接下来创建键盘的.h头文件(使用你的键盘名称):

创建头文件

在头文件中添加以下内容:

#pragma once // 防止头文件被重复包含#include "quantum.h" // 包含 QMK 的核心头文件
键盘头文件说明

该头文件用于定义键盘的矩阵布局。应至少定义一个C宏,将数组转换为代表键盘物理开关矩阵的矩阵。如果你的键盘可以构建多种布局,则应定义多个宏。

  • 对于单一布局,应使用LAYOUT
  • 对于多布局键盘,应有一个支持所有可能开关位置的基本布局LAYOUT_all,以及其他特定布局如LAYOUT_ansiLAYOUT_iso

6. 创建键盘C源文件

创建键盘的主C源文件(使用你的键盘名称):

创建C源文件

添加以下内容:

#include "Despacito0o.h" // 包含键盘的头文件(使用你自定义的名称)

7. 创建config.h文件

创建config.h配置文件:

创建config.h

添加以下内容:

#pragma once // 防止头文件被重复包含#define MATRIX_ROWS 4 // 定义矩阵的行数
#define MATRIX_COLS 4 // 定义矩阵的列数
#define MATRIX_ROW_PINS {B3, A1 , A2 , A3} // 定义行引脚
#define MATRIX_COL_PINS {A4, A15, A14, A8} // 定义列引脚
#define DIODE_DIRECTION COL2ROW // 定义二极管方向为列到行
config.h文件说明

config.h是最先被包含的C头文件,其中设置的变量会在整个项目中持续存在。主要配置内容包括:

  • 硬件选项:VID/PID、设备版本、厂商信息等
  • 矩阵配置:行列数、引脚定义、二极管方向等
  • 功能配置:背光、音频、RGB灯效、防抖等
  • 键盘行为:按键触发时间、组合键设置等

8. 创建键盘映射文件

创建键盘映射的文件结构:先创建keymaps文件夹,然后在其中创建default文件夹,最后在default文件夹中创建keymap.c文件:

创建keymap.c

在keymap.c中添加以下内容:

#include  QMK_KEYBOARD_Hconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {[0] = LAYOUT(MI_B2  , KC_Q   , KC_W,  MI_C3  ,  // 第一行按键映射MI_F2  , MI_G2  , MI_A2, MI_OCTU, // 第二行按键映射MI_C2  , MI_D2  , MI_E2, MI_OCTD, // 第三行按键映射KC_PSLS, MI_OCTD, MO(1), KC_PENT  // 第四行按键映射,包含层切换按键MO(1)),[1] = LAYOUT(QK_BOOT, KC_P8 , RGB_MOD, RGB_TOG, // 第二层第一行:包含重启引导和RGB控制KC_P4  , KC_G  , KC_A   , KC_PAST, // 第二层第二行KC_P1  , KC_P2 , KC_P3  , KC_PMNS, // 第二层第三行KC_PSLS, KC_P0 , KC_PDOT, KC_PENT  // 第二层第四行)
};

9. 创建键盘JSON配置文件

最后,创建一个keyboard.json文件(注意JSON文件中不能有注释):

创建keyboard.json

添加以下内容:

{"keyboard_name": "Despacito0o", "manufacturer": "Despacito0o", "usb": {"vid": "0x1564", "pid": "0x8456", "device_version": "0.0.1" },"layouts": {"LAYOUT": {"layout": [{"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, {"matrix": [0, 2], "x": 2, "y": 0}, {"matrix": [0, 3], "x": 3, "y": 0}, {"matrix": [1, 0], "x": 0, "y": 1}, {"matrix": [1, 1], "x": 1, "y": 1}, {"matrix": [1, 2], "x": 2, "y": 1}, {"matrix": [1, 3], "x": 3, "y": 1}, {"matrix": [2, 0], "x": 0, "y": 2}, {"matrix": [2, 1], "x": 1, "y": 2}, {"matrix": [2, 2], "x": 2, "y": 2}, {"matrix": [2, 3], "x": 3, "y": 2}, {"matrix": [3, 0], "x": 0, "y": 3}, {"matrix": [3, 1], "x": 1, "y": 3}, {"matrix": [3, 2], "x": 2, "y": 3}, {"matrix": [3, 3], "x": 3, "y": 3}  ]}}
}

编译固件

完成所有文件创建后,打开QMK MSYS终端,输入以下命令进行编译:

qmk compile -kb despacito0o -km default

编译成功

看到绿色的成功信息,恭喜你已经成功创建了自己的键盘固件!

知识拓展:QMK架构关键概念

1. 键码(Keycode)系统

QMK提供了丰富的键码系统,包括:

  • 基础字母数字键(KC_A到KC_Z,KC_1到KC_0)
  • 功能键(KC_F1到KC_F24)
  • 特殊功能键(媒体控制、RGB控制等)
  • 层控制键(MO、LT、TO、TG等)

2. 层(Layer)系统

QMK的层系统允许在有限的物理按键上实现多层功能:

  • 基础层(Base Layer):默认层,通常为0
  • 功能层:通过层控制键临时激活或锁定
  • 层优先级:高层级覆盖低层级的按键定义

3. Quantum键码

QMK引入了独特的高级键码,如:

  • Mod-Tap:按下为修饰键,点击为普通键
  • Layer-Tap:按下激活层,点击为普通键
  • One-Shot Keys:点击后效果持续到下一个按键

4. 矩阵扫描

QMK通过矩阵扫描检测按键状态:

  • 行列式矩阵:减少所需引脚数
  • 二极管方向:COL2ROW或ROW2COL定义电流流向
  • 防抖处理:避免按键弹跳导致的误触

结语

通过本教程,你已经掌握了QMK最新架构下创建自定义键盘固件的完整流程。这些基础知识将帮助你进一步探索QMK的强大功能,如RGB灯光效果、OLED屏幕控制、旋钮编码器配置等高级特性。

希望这篇教程对你有所帮助,祝你在DIY键盘的道路上越走越远!
QMK键码参照表大全

http://www.cadmedia.cn/news/11393.html

相关文章:

  • 佛山网站建设哪家公司好百度官网
  • 国内网店平台有哪些福州短视频seo机会
  • 设计企业公司网站拓客app下载
  • 辽源做网站高端建站
  • 网站建设周期云南网站建设公司哪家好
  • 房地产销售基础知识新手必看快排seo排名软件
  • 购买域名的网站百度seo点击工具
  • 公众号怎么做网站域名是什么
  • 长安h5网站建设网站在线客服系统 免费
  • 天津大型网站建设无锡百姓网推广
  • 网站建设模板价格网络营销师证
  • 苏中建设集团网站镇江网站建设方案
  • 个人网站有什么限制杭州网站建设 seo
  • 重庆网站建设公司哪个最好连云港seo优化
  • 广州h5网站开发针对本地的免费推广平台
  • 网上商城怎么做推广广州seo推荐
  • 购物app大全关键词首页排名优化平台
  • 做网站建设的公司有哪些方面培训课程网站
  • 免费建站网站一级大陆在线看快速排名软件seo系统
  • 导航网站搭建济南seo优化
  • 高端的网站设计费用网络推广有多少种方法
  • 汽车网站设计模板福建企业seo推广
  • 物流专线网站建设百度爱采购服务商查询
  • 自适应网站建设服务哪家好使用软件提高百度推广排名
  • 哪里网站建设联系查询关键词排名工具
  • 苏州工业园区质安监站网址网络营销策划的主要特点
  • 网站体验分析什么软件可以发布广告信息
  • 国外网站推广宣传厦门seo培训
  • 屋顶休闲平台设计关键词点击优化工具
  • 深圳做网站开发公司seo关键词选取工具