硬汉嵌入式论坛

 找回密码
 立即注册
查看: 10065|回复: 10
收起左侧

[有问必答] gd32的usb hid

[复制链接]

96

主题

297

回帖

585

积分

金牌会员

123

积分
585
发表于 2020-4-3 11:31:34 | 显示全部楼层 |阅读模式
gd32的usb hid 上位机第一次发数据,下位机可以接收成功, 后面上位机咋发下位机都接收不到,重新下载代码,还是第一次可以接收到,不知道是为啥?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106913
QQ
发表于 2020-4-3 12:26:42 | 显示全部楼层
程序设计有点问题。
回复

使用道具 举报

96

主题

297

回帖

585

积分

金牌会员

123

积分
585
 楼主| 发表于 2020-4-3 14:46:39 | 显示全部楼层
eric2013 发表于 2020-4-3 12:26
程序设计有点问题。

还是下位机的程序有问题,数据发送成功了一次,说明枚举成功,可能是数据接收这里有点问题,您猜测是啥情况?
回复

使用道具 举报

96

主题

297

回帖

585

积分

金牌会员

123

积分
585
 楼主| 发表于 2020-4-3 14:48:53 | 显示全部楼层
eric2013 发表于 2020-4-3 12:26
程序设计有点问题。

下位机只能第一次接收成功,后面就不行了,上位机就会卡死
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106913
QQ
发表于 2020-4-3 16:05:59 | 显示全部楼层
ssssssss 发表于 2020-4-3 14:48
下位机只能第一次接收成功,后面就不行了,上位机就会卡死

之前调试RL-USB遇到过类似,不过我的是发送一会就出错,后来优化了下程序实现,才解决
回复

使用道具 举报

0

主题

159

回帖

159

积分

初级会员

积分
159
发表于 2020-4-4 17:36:37 | 显示全部楼层
这是我的GD32 HID 例子 双向64字节 哈哈,其中键盘扫描用了大神的代码,哈哈。。现在发出自己琢磨的HID代码 参考一下
里面自己写的GD32 IAP例子 包含单片机程序和QT上位机··

GD32F103VC_IAP.zip

672.57 KB, 下载次数: 307

回复

使用道具 举报

96

主题

297

回帖

585

积分

金牌会员

123

积分
585
 楼主| 发表于 2020-4-7 11:40:23 | 显示全部楼层
laxsystem01 发表于 2020-4-4 17:36
这是我的GD32 HID 例子 双向64字节 哈哈,其中键盘扫描用了大神的代码,哈哈。。现在发出自己琢磨的HID代码 ...

现在遇到的问题是,我的usb上位机 有特定的一些配置,比如报文描述符,uid pid 特定,不知道还需要修改哪里才能正确
回复

使用道具 举报

96

主题

297

回帖

585

积分

金牌会员

123

积分
585
 楼主| 发表于 2020-4-8 09:49:26 | 显示全部楼层
laxsystem01 发表于 2020-4-4 17:36
这是我的GD32 HID 例子 双向64字节 哈哈,其中键盘扫描用了大神的代码,哈哈。。现在发出自己琢磨的HID代码 ...

现在接受数据第一包能收到,后面发过来数据直接导致死机了
回复

使用道具 举报

96

主题

297

回帖

585

积分

金牌会员

123

积分
585
 楼主| 发表于 2020-4-9 13:49:29 | 显示全部楼层
laxsystem01 发表于 2020-4-4 17:36
这是我的GD32 HID 例子 双向64字节 哈哈,其中键盘扫描用了大神的代码,哈哈。。现在发出自己琢磨的HID代码 ...

我这里发送数据没啥问题,就是接受数据出现问题,不知道怎么去修改配置才行
回复

使用道具 举报

96

主题

297

回帖

585

积分

金牌会员

123

积分
585
 楼主| 发表于 2020-4-13 09:35:56 | 显示全部楼层
laxsystem01 发表于 2020-4-4 17:36
这是我的GD32 HID 例子 双向64字节 哈哈,其中键盘扫描用了大神的代码,哈哈。。现在发出自己琢磨的HID代码 ...

代码我上传这里了,大哥帮看看是啥问题      http://www.armbbs.cn/forum.php?mod=viewthread&tid=97235&extra=page%3D1
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2021-3-8 09:34:25 | 显示全部楼层
你好楼主,我移植了你的工程到GD32E103C8t6, 也遇到了同样的问题,上位机只能传一次数据,第二次就卡死。后来慢慢调试,发现如附件的图所示,在custom_hid_core.c文件中的custom_hid_data_handler函数中有对usbd_ep_recev (udev, CUSTOMHID_IN_EP, hid->data, 64U);函数进行调用,意思是对主机发过来的数据从FIFO中读取出来,但是函数的形参给错了,不应该是CUSTOMHID_IN_EP应该是CUSTOMHID_OUT_EP,应该就可以了。
如果还不行的话可以把输入输出端点都改成端点1,应该也行了。
123.PNG
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-9 19:02 , Processed in 0.269622 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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