【极简版GH60】【GH60剖析】【七】分析源代码

2019-07-14 11:09发布

接下来,我们研究我们的程序,看下怎么可以使得键盘可以一键输入密码。 首先,https://github.com/tmk/tmk_keyboard,这里有几乎所有的固件源码,新手可能一看会头大,大家应该还记得http://www.keyboard-layout-editor.com/#/layouts/7d55431c8a8d9f9bf94b6f6af8ce7c12这个网站吧。
没错,这个就是简单改配列的网站,我们依然可以利用它来生成代码,然后我们依然要用到http://www.kaiserver.com/tkg/这个网站,不过,这次我们需要生成.c文件而不是编译过后的.eep文件。
然后我们来看一下生成的.c文件。 [0] = KEYMAP_TKG(
ESC, 1,   2,   3,   4,   5,   6,   7,   8,   9,   0,   MINS,EQL, BSPC,
TAB, Q,   W,   E,   R,   T,   Y,   U,   I,   O,   P,   LBRC,RBRC,BSLS,
CAPS,A,   S,   D,   F,   G,   H,   J,   K,   L,   SCLN,QUOT,     ENT,  
LSFT,     Z,   X,   C,   V,   B,   N,   M,   COMM,DOT, SLSH,     RSFT,
LCTL,LGUI,LALT,          SPC,                     RALT,FN0, APP, RCTL),

[1] = KEYMAP_TKG(
GRV, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12, DEL,  
TRNS,TRNS,UP,  TRNS,TRNS,TRNS,CALC,TRNS,INS, TRNS,PSCR,SLCK,PAUS,TRNS,
TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,TRNS,TRNS,TRNS,INS, HOME,PGUP,     TRNS,
TRNS,     TRNS,TRNS,FN1, FN2, FN3, VOLD,VOLU,MUTE,END, PGDN,     TRNS,
TRNS,TRNS,TRNS,          TRNS,                    TRNS,TRNS,TRNS,TRNS),

[2] = KEYMAP_TKG(
NO,  NO,  NO,  NO,  NO,  NO,  NO,  NO,  NO,  NO,  NO,  NO,  NO,  NO,  
NO,  NO,  NO,  NO,  NO,  NO,  NO,  NO,  NO,  NO,  NO,  NO,  NO,  NO,  
NO,  NO,  NO,  NO,  NO,  NO,  NO,  NO,  NO,  NO,  NO,  NO,       NO,  
NO,       NO,  NO,  NO,  NO,  NO,  NO,  NO,  NO,  NO,  NO,       NO,  
NO,  NO,  NO,            NO,                      NO,  NO,  NO,  NO),
很明显,这是我们刚刚配列的三层设置
然后,最后的 [0] = ACTION_LAYER_MOMENTARY(1),
[1] = ACTION_MACRO(),
[2] = ACTION_MACRO(),
[3] = ACTION_MACRO(),
是我们研究的重点,这四条语句分别代表着Fn0~Fn3,ACTION_LAYER_MOMENTARY(1)意思是瞬时切换到第1层(第二层),然后ACTION_MACRO()可以给我们添加宏。下面,我将会教会大家如何设置自己的宏。