给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里。

 

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值