feat: 添加USB HID模块支持

- 添加usb_hid_event事件定义和实现,用于管理USB HID状态
- 添加usb_hid_module模块,实现USB HID协议栈的完整生命周期管理
- 在CMakeLists.txt中注册新的事件和模块源文件
- 在设备树overlay中配置三个HID设备:HID_BOOT、HID_NKRO、HID_RAW
- 在prj.conf中启用USB设备栈相关配置选项
- 修复电池模块和模式切换模块中的重复挂起问题
- 改进蓝牙绑定模块的错误处理和日志记录
- 在app.overlay中启用usbd节点并添加PMIC配置调整
This commit is contained in:
2026-03-14 12:13:25 +08:00
parent 81846a870f
commit e893ddded6
9 changed files with 765 additions and 14 deletions

View File

@@ -0,0 +1,41 @@
#ifndef USB_HID_EVENT_H__
#define USB_HID_EVENT_H__
#include <stdbool.h>
#include <stdint.h>
#include <app_event_manager.h>
#include <app_event_manager_profiler_tracer.h>
enum usb_hid_event_type {
USB_HID_EVT_STATE_REPORT = 0,
};
/* USB 连接层状态(偏“链路可用性”) */
enum usb_hid_usbd_state {
USB_HID_USBD_DISCONNECTED = 0,
USB_HID_USBD_CONNECTED,
USB_HID_USBD_SUSPENDED,
};
/* HID 协议栈状态(偏“服务是否运行”) */
enum usb_hid_stack_state {
USB_HID_STACK_OFF = 0,
USB_HID_STACK_READY,
USB_HID_STACK_ACTIVE,
USB_HID_STACK_SUSPENDED,
USB_HID_STACK_ERROR,
};
struct usb_hid_event {
struct app_event_header header;
enum usb_hid_event_type evt_type;
bool enable;
enum usb_hid_usbd_state usbd_state;
enum usb_hid_stack_state hid_state;
};
APP_EVENT_TYPE_DECLARE(usb_hid_event);
#endif /* USB_HID_EVENT_H__ */