在做一个键盘要实现双模切换,实现方法是一个IO口检测到USB插入后就初始化USB并枚举,且不进入睡眠。检测到USB拔出后关闭USB,并会进入睡眠低功耗模式。插入USB时蓝牙是连着的不会断开,只不过发送键值的通道切换成USB了。
昨天看到有新的SDK就移植了一下,发现插入USB后电脑已经识别到USB设备已经枚举成功了,但一会就复位了。如果在宏中关闭睡眠功能会稳定一些,但还是偶尔会复位,理论上我是检测到有USB是不会睡眠的。
在上一版本的SDK中不会出现这个问题,只是换了个SDK。
在做一个键盘要实现双模切换,实现方法是一个IO口检测到USB插入后就初始化USB并枚举,且不进入睡眠。检测到USB拔出后关闭USB,并会进入睡眠低功耗模式。插入USB时蓝牙是连着的不会断开,只不过发送键值的通道切换成USB了。
昨天看到有新的SDK就移植了一下,发现插入USB后电脑已经识别到USB设备已经枚举成功了,但一会就复位了。如果在宏中关闭睡眠功能会稳定一些,但还是偶尔会复位,理论上我是检测到有USB是不会睡眠的。
在上一版本的SDK中不会出现这个问题,只是换了个SDK。
你可以打印一下复位状态寄存器,看一下是什么原因复位的。
把这个屏蔽掉就好了,之前是没有这个的,不知道去掉有没有影响。还有新的sdk在usb和BLE同时使用的时候老是断连,旧的也没这个问题:
[15:36:34.877] Disconnected.. Reason:8
[15:36:34.885] Advertising..
[15:36:44.018] Connected..
[15:36:52.062] layer: 1, key: 0, status: 0.
[15:36:52.722] Update 1 - Int 0x18 - Latency 4
[15:38:09.438] Disconnected.. Reason:8
[15:38:09.454] Advertising..
[15:38:09.862] Connected..
[15:38:17.922] layer: 1, key: 0, status: 0.
[15:38:18.580] Update 1 - Int 0x18 - Latency 4