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

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1172|回复: 0

给 CH567 模拟键盘增加HID_SET_IDLE

[复制链接]
发表于 2022-2-10 20:22 | 显示全部楼层 |阅读模式
之前的代码中,没有对 SET_IDLE 进行处理,所以会使用 STALL 进行回复。这次的目标是在代码中添加处理的代码。
Picture1.png
作为比对,正常情况下应该使用下面的方式处理:
Picture2.png
修改后的代码如下:
  1.                 /* 分析并处理当前的SETUP包 */
  2.                 len = 0;                                                                      // 默认为成功并且上传0长度
  3.                 status = 0;
  4.                 if (( UsbSetupBuf->bRequestType & USB_REQ_TYP_MASK ) != USB_REQ_TYP_STANDARD )  /* 非标准请求 */
  5.                 {
  6.                         // 处理 HID_SET_IDLE
  7.                         if ((UsbSetupBuf->bRequestType==0x21)&&(SetupReqCode==HID_SET_IDLE)) {
  8.                                 printf("SETUP HID_SET_IDLE\n");
  9.                                 R16_UEP0_T_LEN1 = 0;
  10.                                 R8_UEP0_TX_CTRL1 = UEP_DATA1 | UEP_T_RES_ACK;                    // 默认数据包是DATA1
  11.                                 return ;
  12.                         }
  13.                         status = 0xFF;  // 操作失败
  14.                 }
复制代码

Picture3.png

USB1_KeyboardV2.zip (434.64 KB, 下载次数: 0)


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 00:56 , Processed in 0.256483 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表