nrf51822-keyboard
nrf51822-keyboard copied to clipboard
USB模式下tmk的二合一按键有问题
当通过USB连接到电脑后,二合一按键有问题: 如设置FN1键为长按不放是LALT键,短按是方向左,在蓝牙模式下工作良好。如果采用USB连接的话,会出现短按方向键没有输出。如果短按激活能输出后,再次短按就不会出现问题。
也就是USB模式下至少需要短按两次,才会激活方向键左,但是短按两次只输出一个方向键左,第一次仅仅激活了短按功能。蓝牙模式下,短按一次就会输出一次方向键左,短按两次就是输出两次方向键左。
二合一键设置参看这里:
https://github.com/genokolar/nrf51822-keyboard/blob/2637b19a4f98b70dd3be84dd44012a9ec3ff4bc1/main/keyboard/keymap_plain.c#L68
https://github.com/Lotlab/nrf51822-keyboard/blob/8bdf2ac6661b853c6f163c0c1cb6e362c99a7039/main/keyboard/host_driver.c#L33-L41
按理来说蓝牙和USB的包应该是一样的来着……
你手上有调试器的话可以看看第一次按下按键的时候uart_send_packet发送了些什么,反正要么是这边的数据有问题要么是解析数据有问题……
你手上有调试器的话可以看看第一次按下按键的时候uart_send_packet发送了些什么,反正要么是这边的数据有问题要么是解析数据有问题……
我烧写固件用的Jink OB v2 ,带串口,应该可以调试。但是我不会调试 😭
我觉得问题出在二合一的检测时间上,第一次按的时候有很短的时间做检测是输出ALT还是方向左;但是按下一次后,快速第二次按默认是方向键,所以相当于第二次按的时候ALT就是方向键,而不再是二合一。
要么就是UART的双方的时钟频率有不一致的地方?学习的东西好多 :)
按理来说蓝牙和USB两者的检测时间应该是一致的才对啊……不应该会出现这种情况来着……你切换到蓝牙模式下就正常了吗?
按理来说蓝牙和USB两者的检测时间应该是一致的才对啊……不应该会出现这种情况来着……你切换到蓝牙模式下就正常了吗?
蓝牙模式完全没有问题。二合一功能,很实用的,比如我的设置就相当于有独立的方向键和Delete键