例如,USB 键盘是系统内的共享设备。可以使用多个键盘,它们共享 num、scroll 和 capslock 状态。当您按下键盘 #1 上的 capslock 时,键盘 #2 将检测到此状态。
对于模拟的 USB 键盘设备(使用 Trinket 库),您可以使用以下命令检查这些值:
typedef struct { bool caps,num,scroll; } TKeyboardLEDState;
.....
TKeyboardLEDState usbGetKeyboardLedState()
{
uint8_t iState = TrinketHidCombo.getLEDstate();
TKeyboardLEDState tResult;
tResult.caps = (iState & (1<< KB_LED_CAPS));
tResult.num = (iState & (1<< KB_LED_NUM));
tResult.scroll = (iState & (1<< KB_LED_SCROLL));
return tResult;
}
.......
void loop()
{
TKeyboardLEDState recKeybLEDstate = usbGetKeyboardLedState();
if( recKeybLEDstate.caps )
{
// do something
}
}
问题:
所以我想知道我是否可以用任何键来做到这一点,或者这完全不可能?如果不是,为什么不呢?如果是,我该怎么做?