Closed jackie-weiwei closed 2 years ago
const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { { {KC_LCTRL, KC_FN0, KC_LALT, KC_8, KC_9, KC_0, KC_MINS, KC_BSPACE}, {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7}, {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U}, {KC_NO, KC_NO, KC_EQL, KC_I, KC_O, KC_P, KC_LBRC, KC_BSLS}, {KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J}, {KC_NO, KC_NO, KC_RBRC, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT}, {KC_LSHIFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M}, {KC_NO, KC_NO, KC_SPACE,KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_NO}, {KC_NO, KC_NO, KC_NO, KC_RALT, KC_LEFT, KC_DOWN, KC_NO, KC_RIGHT} }, { {KC_LCTRL, KC_FN0, KC_LALT, KC_F8, KC_F9, KC_F10, KC_F11, KC_BSPACE}, {KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7}, {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U}, {KC_NO, KC_NO, KC_F12, KC_I, KC_O, KC_P, KC_LBRC, KC_BSLS}, {KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J}, {KC_NO, KC_NO, KC_RBRC, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT}, {KC_LSHIFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M}, {KC_NO, KC_NO, KC_SPACE,KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_NO}, {KC_NO, KC_NO, KC_NO, KC_RALT, KC_LEFT, KC_DOWN, KC_NO, KC_RIGHT} }, }; 另外,还有一个问题,最后两列按键不生效,我用这个固件:https://github.com/Jasonbroker/BLEKeyboard 测试 都是正常的,不知道是不是咱们这个固件里使用了13和11引脚?
- 关于删除后无法重新配对的问题:请清空键盘内部绑定信息,方法是开机时按住Space+E;
- 11和13脚请自行检查硬件是否占用,并且确认芯片型号是否正确,NFC功能是否禁用等。
您好,请问一下,禁用NFC后,是不是要编译协议栈? 我是通过 在config.h文件中 加入#define CONFIG_NFCT_PINS_AS_GPIOS来禁用的,测试好象不生效。 我开启 BOOTMAGIC_ENABLE = yes # 启用Bootmagic 以后,搜不到蓝牙信号。
需要,请擦除全片后重新烧录。
我们建议使用新的Bootcheck代替老的Bootmagic。
需要,请擦除全片后重新烧录。
我们建议使用新的Bootcheck代替老的Bootmagic。
协议栈不知道怎么编译 好尴尬 @jim-kirisame Bootcheck代替Bootmagic 是指(BOOTMAGIC_ENABLE = no # 启用Bootmagic BOOTCHECK_ENABLE = yes # 启用Bootchek )这样设置吗?
make flash_softdevice
make flash_softdevice
@jim-kirisame 搞定了,可以用了。不过还存在一个小问题:从WINDOWS中删除设备后,不能直接清空键盘内部绑定信息,必须断电再通电,然后SPACE + U + E 一起按住,才能清空绑定信息。清空绑定信息后,再次匹配设备,连接成功后,设备在15秒左右会自动断开,此时再断电,通电后,即可正常使用了。小瑕疵,凑合用吧。 非常感谢大佬的指点,感谢,感谢!!!
您好,我是在IKBC POKER II的键盘上改装的,加装了E73 的NRF52832 蓝牙模块。 我从keyboard/template复制了一份,生成了一个IKBC的目录,config.h 如下: `
pragma once
include
/ USB和蓝牙的显示参数 / // USB的VID和PID,自行修改
define VENDOR_ID 0xEFCD / USB VID /
define PRODUCT_ID 0xCDEF / USB PID /
// 配置协议使用的VID和PID,自行修改。ID组合不得重复。
define CONF_VENDOR_ID 0xABCD / 配置协议使用的VendorID /
define CONF_PRODUCT_ID 0xDCBA0 / 配置协议使用的ProductID /
define DEVICE_VER 0x0000 / 硬件版本 /
define MANUFACTURER "Jackieron" / 硬件制造商,用于USB和蓝牙显示 /
define PRODUCT "IKBC Poker II" / 硬件名称,用于USB和蓝牙显示 /
//#define MACADDRSEPRATOR '' / 蓝牙名称后地址的分隔符。若不设置则不显示蓝牙名称后面的地址 /
/ USB HID report parameter /
define KEYBOARD_EPSIZE 8 / 键盘上传端点大小,请不要修改 /
define NKRO_EPSIZE 28 / 键盘NKRO端点大小,请不要修改 /
// 定义Bootmagic/Bootcheck按键 //#define BOOTMAGIC_KEY_BOOT KC_U / 开机 / //#define BOOTMAGIC_KEY_ERASE_BOND KC_E / 删除所有绑定 /
// 键盘省电参数
define SLEEP_SLOW_TIMEOUT 15 // 键盘闲置多久后转入慢速扫描模式 (s)
define SLEEP_OFF_TIMEOUT 600 // 键盘闲置多久后转入自动关机 (s)
define KEYBOARD_SCAN_INTERVAL 1 // 键盘最小时间单位TICK (ms)
define KEYBOARD_FAST_SCAN_INTERVAL 10 // 通常模式下,多久扫描一次键盘 (ms)
define KEYBOARD_SLOW_SCAN_INTERVAL 100 // 慢速模式下,多久扫描一次键盘 (ms)
define LED_AUTOOFF_TIME 5 / LED自动熄灭时长(s),设为0则不自动熄灭 /
// 键盘额外功能
define DYNAMIC_TX_POWER / 启用自动发射功率调整 /
//#define PASSKEY_REQUIRED / 需要输入配对码 /
define ENABLE_WATCHDOG / 启用看门狗 /
//#define HIGH_TX_POWER / 更改发射功率到+4dBm /
define MULTI_DEVICE_SWITCH /启用多设备切换 /
define KEYMAP_STORAGE / 启用keymap存储 /
// #define MACRO_BLOCKING_MODE / 在宏播放时禁用其他按键输入 /
define MACRO_STORAGE / 启用宏存储功能 /
define CONFIG_STORAGE / 启用配置存储功能 /
define BUTTONLESS_DFU / 启用免按钮DFU /
// #define DEBUG_SKIP_PWRON_CHECK / 直接开机而跳过开机条件检测,用于调试 /
/ TMK固件内置功能 / / disable action features / //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION
/ Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap /
define LOCKING_SUPPORT_ENABLE
/ Locking resynchronize hack /
define LOCKING_RESYNC_ENABLE
/ key combination for command /
define IS_COMMAND() ( \
// LED 配置
define LED_NUM 22
define LED_CAPS 21
define LED_SCLK 23
define LED_POSITIVE // LED上拉驱动
// #define LED_NO_DEINIT // 不要deinit端口,可以避免部分IO灯光无法关闭的问题
// Bootloader 指示灯
define LED_DFU_INIT 22
define LED_DFU_START 23
define LED_DFU_FINISH 24
define LED_DFU_POSITIVE // LED上拉驱动
// 多用途 Bootloader 按钮
define NRF_BL_DFU_MULTI_ROLE_BTN 21
// USB UART 传输配置 //#define HAS_USB // 启用与CH554的通信支持
define UART_RXD 17 // UART_RX口IO
define UART_TXD 18 // UART_TX口IO
define UART_DET 19 // UART 检测引脚,若此脚被拉低,则说明USB正在工作。若不配置则使用RX口作为检测引脚
define UART_BAUDRATE NRF_UART_BAUDRATE_115200 // 通信波特率,请不要修改
// 电量检测配置
define BATTERY_ADC_PIN NRF_SAADC_INPUT_AIN0 // 电量检测引脚
// 充电检测配置
define PIN_CHARGING !UCC1 // CH554的充电检测。当UCC1拉低时表示正在充电。若不配置则禁用USB下发充电事件
define PIN_STANDBY !UCC2 // CH554的充电检测。当UCC2拉低时表示充电完成。若不配置则只使用PIN_CHARGING作为是否充电的检测标志
// 按键阵列配置
define MATRIX_ROWS 9 / 硬件阵列行数 /
define MATRIX_COLS 8 / 硬件阵列列数 /
static const uint8_t row_pin_array[MATRIX_ROWS] = {20, 19, 18, 17, 16, 15, 14, 13, 11}; static const uint8_t column_pin_array[MATRIX_COLS] = {3, 4, 5, 6, 7, 8, 9, 10};
define ROW_IN // 键盘阵列的二极管方向是从COL->ROW
/ define if matrix has ghost / // #define MATRIX_HAS_GHOST / 按键阵列是否出现Ghost Key,若没有加二极管则需要启用这个项目 /
define DEBOUNCE 5 / 硬件消抖次数,设置为0则不消抖 /
define MATRIX_SCAN_DELAY_CYCLE 36 / 按键扫描等待IO稳定的延时时长 /
// 板载调试器设置
define SWD_CLK_IO T2EX
define SWD_CLK_MASK bT2EX
define SWD_CLK_PORT P1
define SWD_DAT_IO T2
define SWD_DAT_MASK bT2
define SWD_DAT_PORT P1
` 编译、烧写成功后,可以匹配到该设备。当从蓝牙设备中删该设备,再次匹配则无法发现该设备,请问一下如何解决这个问题,谢谢!