- 添加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配置调整
74 lines
1.5 KiB
Plaintext
74 lines
1.5 KiB
Plaintext
#include <zephyr/dt-bindings/gpio/gpio.h>
|
||
|
||
/ {
|
||
zephyr,user {
|
||
vbat-en-gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
|
||
io-channels = <&adc 5>, <&adc 7>;
|
||
};
|
||
|
||
hid_dev_0: hid_dev_0 {
|
||
compatible = "zephyr,hid-device";
|
||
label = "HID_BOOT";
|
||
protocol-code = "keyboard";
|
||
in-report-size = <8>;
|
||
in-polling-period-us = <1000>;
|
||
out-report-size = <8>;
|
||
out-polling-period-us = <1000>;
|
||
};
|
||
|
||
hid_dev_1: hid_dev_1 {
|
||
compatible = "zephyr,hid-device";
|
||
label = "HID_NKRO";
|
||
protocol-code = "none";
|
||
in-report-size = <31>;
|
||
in-polling-period-us = <1000>;
|
||
out-report-size = <8>;
|
||
out-polling-period-us = <1000>;
|
||
};
|
||
|
||
raw_hid: hid_dev_2 {
|
||
compatible = "zephyr,hid-device";
|
||
label = "HID_RAW";
|
||
protocol-code = "none";
|
||
in-report-size = <64>;
|
||
in-polling-period-us = <1000>;
|
||
out-report-size = <64>;
|
||
out-polling-period-us = <1000>;
|
||
};
|
||
};
|
||
|
||
&gpio0 {
|
||
status = "okay";
|
||
};
|
||
|
||
&gpio1 {
|
||
status = "okay";
|
||
};
|
||
|
||
&gpiote {
|
||
status = "okay";
|
||
};
|
||
|
||
&led_0 {
|
||
status = "okay";
|
||
};
|
||
|
||
/* 使能 SAADC,mode_switch_module 使用 channel 7 采样模式拨码电压。 */
|
||
&adc {
|
||
status = "okay";
|
||
};
|
||
|
||
&i2c1 {
|
||
status = "okay";
|
||
|
||
ip5305: pmic@75 {
|
||
status = "okay";
|
||
/* 试验项:调整 IP5305 KEY 保活周期,观察 I2C 失败窗口是否随周期移动。 */
|
||
keepalive-interval-ms = <10000>;
|
||
};
|
||
};
|
||
|
||
&usbd {
|
||
status = "okay";
|
||
};
|