(Arduino Uno重写为USB HID)如何发送Scroll Lock键?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(Arduino Uno重写为USB HID)如何发送Scroll Lock键?相关的知识,希望对你有一定的参考价值。
我正在使用USB HID缓冲区时遇到困难,并且在按下按钮时想要发送滚动锁定键。
我尝试发送我认为是滚动锁(0x47)的内容,然后发送ctrl,left alt和right alt键。我在这里用这个表作为参考:https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf
这是基于http://mitchtech.net/arduino-usb-hid-keyboard/松散的
/* Arduino USB Keyboard HID demo
* Cut/Copy/Paste Keys
*/
#define SCRLCK 0x47
//#define KEY_LEFT_SHIFT 0x02
//#define KEY_RIGHT_CTRL 0x10
//#define KEY_RIGHT_SHIFT 0x20
uint8_t buf[8] = {
0 }; /* Keyboard report buffer */
#define PIN_PTT 2
//#define PIN_CUT 6
//#define PIN_PASTE 7
int state = 1;
int prevState;
void setup()
{
Serial.begin(9600);
pinMode(PIN_PTT, INPUT);
//pinMode(PIN_CUT, INPUT);
//pinMode(PIN_PASTE, INPUT);
// Enable internal pull-ups
digitalWrite(PIN_PTT, 1);
//digitalWrite(PIN_CUT, 1);
//digitalWrite(PIN_PASTE, 1);
delay(200);
}
void loop()
{
state = digitalRead(PIN_PTT);
if (prevState != state) {
buf[0] = SCRLCK; // Scroll Lock
// buf[2] = 27; // Letter X
// buf[2] = 123; // Cut key: Less portable
Serial.write(buf, 8); // Send keypress
prevState = state;
releaseKey();
}
}
void releaseKey()
{
buf[0] = 0;
Serial.write(buf, 8); // Release key
delay(100);
}
我希望发送滚动锁定,但在使用密码测试时,我会看到ctrl,left alt和right alt会被发送。
答案
您应该从偏移量2开始发送第一个密钥代码:
buf [2] = SCRLCK;
偏移0用于键控修改标志,如ctrl,alt等。
以上是关于(Arduino Uno重写为USB HID)如何发送Scroll Lock键?的主要内容,如果未能解决你的问题,请参考以下文章
arduino uno和arduino mini 有啥不同?
将串行从 Raspberry 传递到 Arduino USB HID