ESP32模拟鼠标键盘

首先不是所有的ESP32都支持USB直连。ESP32 S2和ESP32 S3是支持的,具体的如果是购买开发板询客服(当然不少卖板子的也是业余的一问三不知,当然可能知道就是单纯怕麻烦,毕竟这玩儿单价低)。如果你不确定哪些板子支持,也可以用本文的代码,通过选择不同的开发板来确定是否支持,如果不支持,就会报xxxx文件不存在的错误。

我使用的是ESP32 S3 

包含如下头文件。

#include <USB.h>
#include <USBHIDMouse.h>
#include <USBHIDKeyboard.h>

定义两个鼠标和键盘对象

当然如果只需要模拟鼠标或键盘则定义其中一个即可

USBHIDMouse eps32_Mouse;

USBHIDKeyboard eps32_Keyboard;

在setup函数里初使化鼠标键盘

eps32_Keyboard.begin();

eps32_Mouse.begin();

USB.begin();

通过以上在电脑里已经能正确识别为鼠标键盘了。

接下来的逻辑则是程序自身的逻辑处理,比如中断响应,网络响应,蓝牙响应。

这两个类的函数都很简单

鼠标类主要函数如下:

void click(uint8_t b = MOUSE_LEFT);

void move(int8_t x, int8_t y, int8_t wheel = 0, int8_t pan = 0);

void press(uint8_t b = MOUSE_LEFT);   // press LEFT by default

void release(uint8_t b = MOUSE_LEFT); // release LEFT by default

bool isPressed(uint8_t b = MOUSE_LEFT); // check LEFT by default

键盘主要函数如下:

size_t write(uint8_t k);

size_t write(const uint8_t *buffer, size_t size);

size_t press(uint8_t k);

size_t release(uint8_t k);

void releaseAll(void);

 void sendReport(KeyReport* keys);

 //raw functions work with TinyUSB's HID_KEY_* macros

size_t pressRaw(uint8_t k);

 size_t releaseRaw(uint8_t k);

这里需要注意的是cap之类的,因为有可能机器本身是有物理或者其它键盘的。这些状态可能就不一致。

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值