OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8161|回复: 4

STM32F407ZG单片机USB-Hid通讯PC无法收到数据问题

[复制链接]

8

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
131
金钱
131
注册时间
2015-12-22
在线时间
22 小时
发表于 2015-12-22 14:41:07 | 显示全部楼层 |阅读模式
5金钱

阿莫电子网找了一个STM32F4单片机实现USB-Hid设备的程序,编译及烧录都正常,设备也能够被正确枚举及打开,但是USB调试助手始终无法收到数据。用"Bus Hound"工具看数据包,可见如下错误信息(红色字体):

Device  Phase  Data                                                                                                    Description                       Cmd.Phase.Ofs(rep)
------  -----  ------------------------------------------------------------------------------------------------------  --------------------------------  ------------------
  16.0  CTL    80 06 00 01  00 00 12 00                                                                                GET DESCRIPTOR                           1.1.0       
  16.0  IN     12 01 00 02  00 00 00 40  83 04 50 57  00 02 01 02  03 01                                               .......@..PW......                       1.2.0       
  16.0  CTL    80 06 00 02  00 00 09 00                                                                                GET DESCRIPTOR                           2.1.0       
  16.0  IN     09 02 29 00  01 01 00 e0  32                                                                            ..).....2                                2.2.0       
  16.0  CTL    80 06 00 02  00 00 29 00                                                                                GET DESCRIPTOR                           3.1.0       
  16.0  IN     09 02 29 00  01 01 00 e0  32 09 04 00  00 02 03 00  00 00 09 21  10 01 00 01  22 a2 00 07  05 81 03 ff  ..).....2..........!....".......         3.2.0       
  16.0  CTL    00 09 01 00  00 00 00 00                                                                                SET CONFIG                               4.1.0       
  16.0  CTL    21 0a 00 00  00 00 00 00                                                                                SET IDLE                                 5.1.0       
  16.0  CTL    81 06 00 22  00 00 e2 00                                                                                GET DESCRIPTOR                           6.1.0       
  16.0  IN     05 8c 09 01  a1 01 85 01  09 01 15 00  25 01 75 08  95 01 b1 82  85 01 09 01  91 82 85 02  09 02 15 00  ............%.u.................         6.2.0       
  16.0  CTL    80 06 01 03  09 04 8a 01                                                                                GET DESCRIPTOR                           7.1.0(2)    
  16.0  IN     0c 03 42 00  61 00 69 00  64 00 75 00                                                                   ..B.a.i.d.u.                             7.2.0       
  16.0  CTL    80 06 02 03  09 04 8a 01                                                                                GET DESCRIPTOR                           8.1.0(2)    
  16.0  IN     18 03 42 00  61 00 69 00  64 00 75 00  20 00 47 00  6c 00 61 00  73 00 73 00                            ..B.a.i.d.u. .G.l.a.s.s.                 8.2.0       
  16.0  CTL    80 06 03 03  09 04 8a 01                                                                                GET DESCRIPTOR                           9.1.0(2)    
  16.0  IN     1a 03 30 00  30 00 30 00  30 00 30 00  30 00 30 00  30 00 30 00  31 00 31 00  43 00                     ..0.0.0.0.0.0.0.0.0.1.1.C.               9.2.0       
  16.1  USTS   c0000012                                                                                                babble detected                         13.1.0       
  16.1  USTS   c0000030                                                                                                endpoint halted                         14.1.0       
  16    RESET                                                                                                                                                  15.1.0       
  16    ok                                                                                                                                                     15.2.0       
  16.1  RESET                                                                                                                                                  16.1.0       
  16.0  CTL    80 06 00 02  00 00 09 00                                                                                GET DESCRIPTOR                          17.1.0       
  16.0  IN     09 02 29 00  01 01 00 e0  32                                                                            ..).....2                               17.2.0       
  16.0  CTL    80 06 00 02  00 00 29 00                                                                                GET DESCRIPTOR                          18.1.0       
  16.0  IN     09 02 29 00  01 01 00 e0  32 09 04 00  00 02 03 00  00 00 09 21  10 01 00 01  22 a2 00 07  05 81 03 ff  ..).....2..........!....".......        18.2.0       
  16.1  USTS   c0000012                                                                                                babble detected                         19.1.0(166)  
  16    RESET                                                                                                                                                  20.1.0(166)  
  16.1  USTS   80000600                                                                                                bad pipe handle                         21.1.0(166)  
  16    ok                                                                                                                                                     20.2.0       
  16.1  RESET                                                                                                                                                  22.1.0(166)  


不知是否有人遇到类似错误?请问是如何解决的?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

8

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
131
金钱
131
注册时间
2015-12-22
在线时间
22 小时
 楼主| 发表于 2015-12-22 17:36:54 | 显示全部楼层
在实验中发现,将USB\USB_APP\usbd_usr.c中的带箭头内容的代码注释掉,换到下面的函数中
//USB Device 配置成功
void USBD_USR_DeviceConfigured (void)
{
//bDeviceState=1;    <-----------
printf("MSC Interface started.\r\n"); 

//USB Device挂起
void USBD_USR_DeviceSuspended(void)
{
//bDeviceState=0;  <-------------
printf("Device In suspend mode.\r\n");


//USB Device连接成功
void USBD_USR_DeviceConnected (void)
{
bDeviceState=1;  ++---------------------
printf("USB Device Connected.\r\n");
}
//USB Device未连接
void USBD_USR_DeviceDisconnected (void)
{
bDeviceState=0;    ++-------------------
printf("USB Device Disconnected.\r\n");


则不会出现"babble detected"以及后边的错误了,但是数据还是接收不到。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2015-12-24 22:31:23 | 显示全部楼层
帮顶。。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

8

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
131
金钱
131
注册时间
2015-12-22
在线时间
22 小时
 楼主| 发表于 2015-12-25 09:08:56 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
你好,后续是否能开发USB-hid设备作为device的例程及视频。目前比host的需求多。
回复

使用道具 举报

0

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2017-5-18
在线时间
16 小时
发表于 2020-9-11 16:14:53 | 显示全部楼层
问题解决了吗?
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-30 07:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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