You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Arduino UNO作HID使用Keyboard库编译报错,是否需更换其他库?

Arduino UNO 作为HID设备编译报错的解决办法

用户问题详情

我正在开发一个项目,需要将Arduino UNO用作HID设备。通过Arduino库管理器安装了1.0.4版本的Keyboard库,并编写了如下基础测试代码:

#include <Keyboard.h>
void setup() {
  // initialize the Keyboard library
  Keyboard.begin();
}

void loop() {
  Keyboard.press('A');
  delay(1000);
  Keyboard.release('A');
  delay(1000);
}

编译时出现如下错误:

C:\Users\medic\AppData\Local\Temp\.arduinoIDE-unsaved202314-8852-isv7gn.mjro\sketch_feb4a\sketch_feb4a.ino: In function 'void setup()':
C:\Users\medic\AppData\Local\Temp\.arduinoIDE-unsaved202314-8852-isv7gn.mjro\sketch_feb4a\sketch_feb4a.ino:4:3: error: 'Keyboard' was not declared in this scope
   Keyboard.begin();
   ^~~~~~~~
C:\Users\medic\AppData\Local\Temp\.arduinoIDE-unsaved202314-8852-isv7gn.mjro\sketch_feb4a\sketch_feb4a.ino: In function 'void loop()':
C:\Users\medic\AppData\Local\Temp\.arduinoIDE-unsaved202314-8852-isv7gn.mjro\sketch_feb4a\sketch_feb4a.ino:8:3: error: 'Keyboard' was not declared in this scope
   Keyboard.press('A');
   ^~~~~~~~

exit status 1

Compilation error: 'Keyboard' not found. Does your sketch include the line '#include <Keyboard.h>'?

尝试安装多个第三方库后问题仍未解决,询问是否需要使用其他库。

问题根源

Arduino UNO的主控芯片ATmega328P本身不具备原生USB HID功能,官方Keyboard.h库是为自带USB主控的板型(如Leonardo、Micro、Pro Micro)设计的,因此直接在UNO上使用该库会触发编译错误。

解决方案

方案1:更换支持原生HID的板型

如果允许更换硬件,直接使用Leonardo、Micro或Pro Micro这类板型,你的测试代码无需修改,安装官方Keyboard库后即可正常编译运行。

方案2:给UNO的USB转串口芯片刷HID固件(仅适用于带ATmega16U2的UNO)

原版UNO通常使用ATmega16U2作为USB转串口芯片,可将其刷入Arduino Leonardo的USB固件,让UNO被识别为Leonardo设备,从而兼容官方Keyboard库:

  • 准备另一块Arduino(如UNO)作为ISP编程器,连接到目标UNO的ICSP引脚;
  • 在Arduino IDE中选择"Arduino Leonardo"板型,将Leonardo的USB固件烧写到目标UNO的ATmega16U2中;
  • 烧写完成后重新连接UNO,即可使用原有测试代码。

方案3:使用软件模拟USB的第三方库(适用于所有UNO)

若无法更换板型或刷固件,可使用V-USB库通过软件模拟USB HID功能:

  • 安装V-USB库;
  • 按照库文档要求,在UNO的GPIO引脚(通常为D2、D3)连接必要的外部元件(2个1.5kΩ电阻、1个6.8nF电容);
  • 使用库提供的API替代官方Keyboard库的方法,实现键盘按键模拟。

内容的提问来源于stack exchange,提问作者ahmed medic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 16:20:22