找回密码
 立即注册
查看: 356|回复: 4

使用工具箱例子60HID 里面没有USB-HID收发函数

[复制链接]
  • TA的每日心情
    无聊
    昨天 10:27
  • 签到天数: 122 天

    [LV.7]常住居民III

    3

    主题

    24

    回帖

    777

    积分

    高级会员

    积分
    777
    发表于 2023-7-24 16:59:30 | 显示全部楼层 |阅读模式
    使用例子 60-HID(Human Interface Device)协议范例

    修改了 usb_desc.c 文件中的 vid pid 和对应的显示内容
    电脑可以识别
    但是因为这里面没有 lib 库函数,无法使用 USB_SendData,这个例子里的代码也都没有注释,不知道该怎么使用
    1. while (1)
    2.     {
    3.         if (bUsbOutReady)
    4.         {
    5.             USB_SendData(UsbOutBuffer,OutNumber);   //发送数据缓冲区,长度(接收数据原样返回, 用于测试)
    6.             
    7.             usb_OUT_done();
    8.         }
    9.     }
    复制代码


    使用工具箱例子60HID 里面没有USB-HID收发函数-1.png

    回复 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:59
  • 签到天数: 143 天

    [LV.7]常住居民III

    27

    主题

    1343

    回帖

    4187

    积分

    论坛元老

    积分
    4187
    发表于 2023-7-24 19:43:28 | 显示全部楼层
    例程60 HID例子是在接收中断处理函数里将收到的数据原样返回:

    1.png

    USB HID数据收发需要在“中断输入输出”标签测试:
    2.png

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    无聊
    昨天 10:27
  • 签到天数: 122 天

    [LV.7]常住居民III

    3

    主题

    24

    回帖

    777

    积分

    高级会员

    积分
    777
     楼主| 发表于 2023-7-24 21:24:43 | 显示全部楼层
    乘风飞扬 发表于 2023-7-24 19:43
    例程60 HID例子是在接收中断处理函数里将收到的数据原样返回:


    有没有能修改 vid pid Manufacturer Product 的库文件用
    例子都比较零散 很难合并到一起
    想用 STC_HID_QUERY_LIBRARY 的库,还能修改参数
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    2023-12-2 09:55
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    14

    主题

    77

    回帖

    614

    积分

    高级会员

    积分
    614
    发表于 2024-1-8 11:17:59 | 显示全部楼层
    我也在找不原样返回的例子,官方这个原样返回的范例太不友好了,无法实现理解发回自己的数据要怎么做
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    无聊
    昨天 10:27
  • 签到天数: 122 天

    [LV.7]常住居民III

    3

    主题

    24

    回帖

    777

    积分

    高级会员

    积分
    777
     楼主| 发表于 2024-1-9 16:17:38 | 显示全部楼层
    ahong 发表于 2024-1-8 11:17
    我也在找不原样返回的例子,官方这个原样返回的范例太不友好了,无法实现理解发回自己的数据要怎么做 ...

    u8 cmdBuffer[64];

    //执行命令缓存
    void readCommand(void)
    {
        uint8_t i;
        while(1)
        {
          if (bUsbOutReady)
          {
            if(OutNumber>0){
              for(i=0;i<OutNumber;i++){
                cmdBuffer=UsbOutBuffer;
              }
              usb_OUT_done();
             return;
            }
          }
        }
    }

    读出来的数据放到缓存里,后面去用

    更多的看
    https://gitee.com/happysoul/eeprom_stc/blob/master/keil/main.c

    我这个是 编程器 读写 32/28脚并口 eeprom 用的 usb-cdc 虚拟串口, 其他的我放弃了
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-18 17:31 , Processed in 0.063226 second(s), 48 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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