【发布时间】:2019-05-25 14:41:14
【问题描述】:
我正在使用 esp-32 esp-idf HID 库 (https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/ble_hid_device_demo) 制作自定义键盘,将扫描码发送到 Android 设备。我需要发送扫描码 = 310,其中包含两个字节的数据。
我的设备需要 ble hid 键盘按钮的扫描码 = 310[dec]。当我尝试将此代码作为 uint8_t key_vaule[] 发送时,因为它在 ble_hid_device_demo 项目的 ble_hid_demo_main.c 中使用,设备收到了另一个扫描代码,它从 000 0001 0011 0110 [310dec] 被截断为 0011 0110 [155dec]。我想这是因为传输变量的 8 位大小而不是 16 位。将库从 uint8_t 大小修改为 uint16_t 没有给出任何结果,结果仍然被截断。有没有办法发送一个两字节的代码而不是一个字节?
【问题讨论】:
-
欢迎来到 StackOverflow。请考虑改进问题的格式(另请参阅此处stackoverflow.com/help/formatting)。这将有助于其他人了解您面临的问题。
-
旁注:截断的代码不是十进制的
155。二进制0011 0110是十进制54。十进制155是所需310的一半,所以你忽略了什么? -
如果您发布了代码,建议会容易得多。到场外材料的链接可能会过时,并且是您的代码失败了,因此要修复它,您必须显示它。 描述它更容易更准确!
-
看来这是XY problem。也许您应该简单地问一下,“使用这个esp-32 esp-idf HID library,我怎样才能发出组合键
CTRL+,?”。然后可能会在代码中展示您失败的尝试(不是代码描述)。相反,您设计了一个有缺陷的解决方案,并询问了解决方案的问题并掩盖了您真正想要实现的目标。下次发帖时可能要考虑一些事情。
标签: c embedded hid esp32 esp-idf