peng-zhihui / HelloWord-Keyboard

GNU General Public License v3.0
6.03k stars 986 forks source link

关于 FN键位置的问题 #117

Open zhdjet opened 1 year ago

zhdjet commented 1 year ago

@peng-zhihui

在实际的使用中,发现 FN键的位置在原程序中必须映射在78号,对应FN键按下的检测 函数:

bool HWKeyboard::FnPressed() { return remapBuffer[9] & 0x02; }

中的[9]要怎么计算?假如我想 加一下PAD_NUM_LCK的检测函数,是不是也是[9]?

麻烦您抽时间给解答一下,非常感谢 !

peng-zhihui commented 1 year ago
  1. 因为Fn键是固定的一般不会重映射,所以这个按键编码是hardcode的,可以自己根据remap函数里面的代码推算一下
  2. 实际上你可以单独拉一根Fn的IO线到MCU引脚,这样就可以直接读取IO电平判断Fn了,我新版PCB里就是这么干的
  3. 昨天刚更新的固件添加了通过按键名查找按键值的函数(看一下KeyPressed函数)
zjzcpj commented 1 year ago

由于对keymap进行了自行修改,可以利用新添加的KeyPressed函数来替代FnPressed的硬编码: bool HWKeyboard::FnPressed() { return HWKeyboard::KeyPressed(HWKeyboard::FN); //Not sure yet } 想确认一下可以这样用嘛

peng-zhihui commented 1 year ago

可以

ThanatosSui commented 3 months ago

大佬,我实验的自制键盘,还是无法正常识别FN按键。请教如何解决。谢谢

TheShallow commented 3 months ago

这是来自小项的自动回复邮件。   邮件已收到