如何解决为什么我的 USB HID 输出垃圾? STM32立方体
我正在尝试制作一个力反馈轮,但软件不是我的菜。 这应该切换按钮 0,但它没有。
typedef struct{
uint8_t buttons;
int8_t relativeMvt;
}steer_t;
steer_t steer = {0,0};
while (1)
{
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);
if(steer.buttons) steer.buttons = 0b00000000;
else steer.buttons = 0b00000001;
USBD_CUSTOM_HID_SendReport(&hUsbDeviceFS,steer,sizeof(steer));
HAL_Delay(500);
}
我的报告描述符(这是我第一次使用):
运行该代码,按钮是静态的“ON”,如下所示:
只有当“relativeMvt”变量改变时,它们才会(随机)改变,非常奇怪。
我尝试过的:
-
在 typeDef 中交换 relativeMvt 和按钮
-
检查报告描述符大小等
-
哭
#define USBD_CUSTOMHID_OUTREPORT_BUF_SIZE 2
#define USBD_CUSTOM_HID_REPORT_DESC_SIZE 45
#define CUSTOM_HID_EPIN_SIZE 2
我需要改变什么才能让它发挥作用?谢谢!
解决方法
我已经解决了。我失踪了:
#include "usbd_customhid.h"
我在传递变量时忘记了“&”:
USBD_CUSTOM_HID_SendReport(&hUsbDeviceFS,&steer,sizeof(steer));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。