给QMK键盘加个OLED显⽰屏
QMK是⾃带OLED⽀持的。但看⽂档并没有提到接线的⽅法,搜索相关资料,终于弄明⽩,因为是使⽤IIC通讯协议,所以使⽤的IO跟MCU 芯⽚有关,并⾮跟连接键盘矩阵⼀样,由程序来定义。⽐如pro micro使⽤atmega32u4,IIC通讯使⽤的是D2(SDA), D3(SLC) 。如下图灰⾊底的部分定义。对应芯⽚的PORT是PD1,PD0,引脚19和18。
然后就⽐较简单了,在rules.mk⾥加上 OLED_DRIVER_ENABLE = yes,在keymap.c⾥加上oled_task_user()的即可。⽐如官⽅的⽰例:
#ifdef OLED_DRIVER_ENABLE
数的发展史void oled_task_user(void) {
扛鼎天下// Host Keyboard Layer Status
oled_write_P(PSTR("Layer: "), false);
何超莲回应分手传闻switch (get_highest_layer(layer_state)) {
case 0:
有含义名字oled_write_P(PSTR("Default\n"), false);
break;
case 1:
oled_write_P(PSTR("FN\n"), false);
break;
case 2:
oled_write_P(PSTR("ADJ\n"), false);
break;
水浒传名字default:
// Or use the write_ln shortcut over adding '\n' to the end of your string
oled_write_ln_P(PSTR("Undefined"), false);
张钧蜜怎么读}
// Host Keyboard LED Status
led_t led_state = host_keyboard_led_state();
oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
}
#endif
最后就可以得到结果:
下⾯这个是使⽤arduino IDE⽣成的图⽂,稍加修改也可以放到qmk⾥。
发布评论