我在使用CH573的自定义HID的时候,发现第一次绑定的时候,全部通道都是可以用的;但是如果断开后重新连接,那么一部分HID通道就不能使用了。打印日志是发现,Windows没有在重新连接后设置CCCD,导致无法Notify。
CCCD值在设置一次后应该是会被设备保存的,但是似乎调用 GATTServApp_ProcessCCCWriteReq 函数后并没有保存到数据。使用ISP工具观察数据储存区如下面图所示:
由于我定义了6个HID的CCCD,故应当至少有6*4*2=48byte是用于存储CCCD值的,但是看图上面就只有一个是正常存储了。GATTServApp_ProcessCCCWriteReq的返回值是正常的,过程中没有出现其他的问题。
请问这种情况应该如何处理?
热门产品 :
CH32V317: 互联型青稞RISC-V MCU