【问题标题】:Arduino Trinket/Attiny85 USB: Possible to read the state of ALL keys?Arduino Trinket/Attiny85 USB:可以读取所有键的状态吗?
【发布时间】:2016-06-15 00:39:05
【问题描述】:

例如,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
  }
}

问题:

所以我想知道我是否可以使用任何键来做到这一点,或者这完全不可能?如果不是,为什么不呢?如果是,我该怎么做?

【问题讨论】:

    标签: c++ arduino keyboard usb attiny


    【解决方案1】:

    当您按下键盘 #1 上的 capslock 时,键盘 #2 将检测到此状态。

    这是因为当前的 LED 状态由操作系统传输到所有键盘。但仅传输 LED 状态而不传输按键状态。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-27
      • 2020-07-20
      • 2015-06-24
      • 2012-11-13
      • 2021-07-12
      • 2014-08-19
      • 2012-11-02
      相关资源
      最近更新 更多