如何将HelloWord-Keyboard适配不同配列:75%布局扩展开发指南
【免费下载链接】HelloWord-Keyboard 项目地址: https://gitcode.com/gh_mirrors/he/HelloWord-Keyboard
想要将开源机械键盘HelloWord-Keyboard从标准配列扩展到更紧凑的75%布局吗?这篇完整指南将手把手教你如何快速完成键盘配列适配,让你的键盘项目支持更多个性化布局选择。
🎯 为什么选择75%配列扩展
75%配列是目前最受欢迎的键盘布局之一,它在保留功能键的同时大幅缩小了键盘尺寸。通过HelloWord-Keyboard的模块化设计,你可以轻松实现:
- 节省桌面空间 - 比全尺寸键盘更紧凑
- 保持实用性 - 保留F区和方向键
- 个性化定制 - 支持多种键位映射方案
🔧 硬件配置调整步骤
1. 理解当前键盘矩阵结构
在2.Firmware/HelloWord-Keyboard-fw/HelloWord/hw_keyboard.h中,可以看到键盘的核心配置:
static const uint8_t IO_NUMBER = 11 * 8; // 使用11片74HC165
static const uint8_t KEY_NUMBER = 82; // 支持82个按键
static const uint8_t LED_NUMBER = 104; // 支持104个RGB灯珠
2. 修改按键映射矩阵
关键文件:2.Firmware/HelloWord-Keyboard-fw/HelloWord/hw_keyboard.h中的keyMap数组
int16_t keyMap[5][IO_NUMBER] = {
// 物理位置映射
{67,61,60,58,59,52,55,51,50,49,48,47,46,3,
80,81,64,57,62,63,53,54,45,44,40,31,26,18,2,
19,70,71,66,65,56,36,37,38,39,43,42,41,28,1,
15,74,73,72,68,69,29,30,35,34,33,32,24,0,
14,76,77,78,79,16,20,21,22,23,27,25,17,4,
13,12,8,75,9,10,7,11,6,5,
86,84,82,87,85,83}, // TouchBar索引
// 功能层映射
{ESC,F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,PAUSE,
GRAVE_ACCENT,NUM_1,NUM_2,NUM_3,NUM_4,NUM_5,NUM_6,NUM_7,NUM_8,NUM_9,NUM_0,MINUS,EQUAL,BACKSPACE,INSERT,
TAB,Q,W,E,R,T,Y,U,I,O,P,LEFT_U_BRACE,RIGHT_U_BRACE,BACKSLASH,DELETE,
CAP_LOCK,A,S,D,F,G,H,J,K,L,SEMI_COLON,QUOTE,ENTER,PAGE_UP,
LEFT_SHIFT,Z,X,C,V,B,N,M,COMMA,PERIOD,SLASH,RIGHT_SHIFT,UP_ARROW,PAGE_DOWN,
LEFT_CTRL,LEFT_GUI,LEFT_ALT,SPACE,RIGHT_ALT,FN,RIGHT_CTRL,LEFT_ARROW,DOWN_ARROW,RIGHT_ARROW}
3. 配置层设置
在2.Firmware/HelloWord-Keyboard-fw/UserApp/configurations.h中配置键盘参数:
typedef struct KeyboardConfig_t
{
configStatus_t configStatus;
uint64_t serialNum;
int8_t keyMap[128]; // 按键映射数组
} KeyboardConfig_t;
💻 固件开发实战
1. 核心扫描逻辑修改
扫描函数位于hw_keyboard.cpp中,负责读取74HC165移位寄存器的状态:
uint8_t* HWKeyboard::ScanKeyStates()
{
// 扫描按键状态
HAL_GPIO_WritePin(PL_GPIO_Port, PL_Pin, GPIO_PIN_RESET);
HAL_SPI_Receive(spiHandle, spiBuffer, sizeof(spiBuffer), 100);
HAL_GPIO_WritePin(PL_GPIO_Port, PL_Pin, GPIO_PIN_SET);
return scanBuffer;
}
2. 防抖处理优化
为了确保按键响应的准确性,需要应用防抖滤波:
void HWKeyboard::ApplyDebounceFilter(uint32_t _filterTimeUs = 100)
{
// 实现按键防抖逻辑
}
3. HID报告配置
根据75%配列的需求调整HID报告大小:
static const uint16_t KEY_REPORT_SIZE = 1 + 16;
static const uint16_t RAW_REPORT_SIZE = 1 + 32;
static const uint16_t HID_REPORT_SIZE = KEY_REPORT_SIZE + RAW_REPORT_SIZE;
🎨 75%配列布局设计
典型75%布局特点
- 主键区:标准QWERTY布局
- 功能键区:保留F1-F12按键
- 导航区:集成方向键和编辑键
- 宏按键:可自定义的多功能按键
📋 开发检查清单
在完成75%配列适配后,请确保:
✅ 硬件检查
- 74HC165芯片连接正确
- 按键矩阵布线合理
- RGB灯珠位置对应
✅ 软件验证
- 按键扫描正常
- HID报告正确
- 防抖功能有效
✅ 功能测试
- 所有按键响应
- 多层映射切换
- RGB灯光同步
🚀 快速部署流程
-
克隆项目:
git clone https://gitcode.com/gh_mirrors/he/HelloWord-Keyboard -
修改配置文件:调整2.Firmware/HelloWord-Keyboard-fw/HelloWord/hw_keyboard.h中的keyMap数组
-
编译固件:使用项目中的CMakeLists.txt进行编译
-
烧录测试:通过ST-Link工具烧录到STM32F103芯片
💡 进阶优化建议
- 动态配列切换:支持运行时切换不同布局
- 热插拔配置:无需重新烧录即可更改键位
- 云端同步:将个人配置保存到云端
通过以上步骤,你可以轻松将HelloWord-Keyboard适配到75%配列,打造属于你自己的个性化机械键盘。Happy Coding! 🎉
【免费下载链接】HelloWord-Keyboard 项目地址: https://gitcode.com/gh_mirrors/he/HelloWord-Keyboard
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考






