给 CH567 模拟键盘增加HID_SET_IDLE-Arduino中文社区 - Powered by Discuz! Archiver

Zoologist 发表于 2022-2-10 20:22

给 CH567 模拟键盘增加HID_SET_IDLE

之前的代码中,没有对 SET_IDLE 进行处理,所以会使用 STALL 进行回复。这次的目标是在代码中添加处理的代码。
作为比对,正常情况下应该使用下面的方式处理:修改后的代码如下:                /* 分析并处理当前的SETUP包 */
                len = 0;                                                                      // 默认为成功并且上传0长度
                status = 0;
                if (( UsbSetupBuf->bRequestType & USB_REQ_TYP_MASK ) != USB_REQ_TYP_STANDARD )/* 非标准请求 */
                {
                        // 处理 HID_SET_IDLE
                        if ((UsbSetupBuf->bRequestType==0x21)&&(SetupReqCode==HID_SET_IDLE)) {
                              printf("SETUP HID_SET_IDLE\n");
                              R16_UEP0_T_LEN1 = 0;
                              R8_UEP0_TX_CTRL1 = UEP_DATA1 | UEP_T_RES_ACK;                  // 默认数据包是DATA1
                              return ;
                        }
                        status = 0xFF;// 操作失败
                }




页: [1]
查看完整版本: 给 CH567 模拟键盘增加HID_SET_IDLE