gpt4 book ai didi

c - Arduino + RN-42 蓝牙模块 HID

转载 作者:太空狗 更新时间:2023-10-29 15:02:30 24 4
gpt4 key购买 nike

我正在尝试用我的 Arduino Mini Pro 制作一个“键盘”和一个 RN-42 HID Bluetooth模块。我可以用我的 MacBook 连接到它它显示为蓝牙键盘。此外,我可以按下按钮,它会发送命令。

完美吧?

不幸的是,我不知道如何编码我需要发送到模块以告诉它按键和按键释放的字节。我一直在阅读我能拿到的每一份蓝牙 RN-42 手册,但我并不完全理解我应该向蓝牙模块发送什么。过去几周我也一直在使用 Google 搜索进行搜索,但找不到任何对我有帮助的 C 代码。据我所知,USB 按键是作为十六进制数组发送的。这是正确的吗?如果是这样,我将如何编码?

最佳答案

我写了一个arduino库silverball支持键盘和鼠标的 RN42 和 HID 协议(protocol)。我有一个示例应用程序,展示了如何通过 BT 模块发送 HID 原始报告。我的设计用于通过自定义 Controller 玩游戏。

如前所述,您需要将 BT 模块设置为 HID 模式(从串行连接发送命令 S~,6 或在启动时将 GPIO11 设置为高电平模块)。默认情况下,模块应在出厂时设置为键盘 HID,但要将其设置为键盘,请向 BT 模块发送命令 SH,0200,这会将其设置为键盘模式。

之后,您需要简单地将 RAW 报告发送给 BT,它们的格式如下:

RN42 HID 原始报告格式:

|start(1 byte)|length(1 byte)|descriptor(1 byte)|data(length - 1 [for the descriptor]) 

键盘示例:

|0xFD|9|1|modifier|0x00|code 1|code 2|code 3|code 4|code 5|code 6 

键盘修改位(作为一个字节发送)

bit 7  |bit 6  |bit 5    |bit 4  |bit 3  |bit 2  |bit 1    |bit 0 
rt GUI |rt alt |rt shift |rt ctrl|lt GUI |lt alt |lt shift |lt ctrl

我的代码可以在 github 上找到- 随心所欲地使用它!

关于c - Arduino + RN-42 蓝牙模块 HID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16243602/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com