[圈圈教你玩USB]

《圈圈教你玩USB》书中讨论专区

[复制链接]
楼主: computer00
手机看帖
扫描二维码
随时随地手机跟帖
鑫海宝贝| | 2011-5-25 08:53 | 显示全部楼层
这个我也有,不过只做了几个实验,没有好好实现全部功能,有待完善

使用特权

评论回复
ningling_21| | 2011-11-25 15:30 | 显示全部楼层
请问圈圈:
D12上电后,USB枚举怎么是这样的呢?
以下为51串口输出内容:

Usb_suspend.
Usb_reset.
Usb_end0_out.
8006000100004000
Usb_get_device_descriptor.
Usb_device_descriptor_send_complete.
Usb_end0_out.
1201100100000010
Usb_clr_feature.
Usb_end0_out.
1201100100000010
Usb_clr_feature.
Usb_end0_out.
1201100100000010
Usb_clr_feature.
Usb_end0_out.
1201100100000010
Usb_clr_feature.
Usb_end0_out.
.......
.......

使用特权

评论回复
zjwj| | 2011-12-16 23:17 | 显示全部楼层
00您好,最近我买了您的书,具体的都看了就是对USB具体的通讯过程不理解,您能给个答复吗?

使用特权

评论回复
ddllxxrr| | 2011-12-28 13:14 | 显示全部楼层
支持一下

使用特权

评论回复
plough1985| | 2012-1-1 22:42 | 显示全部楼层
刘荣大哥你好,你的书和开发板我都买了,特别好。只是USB好难啊。目前我在学习您书的第九章《自定义USB设备及驱动开发》。现遇到以下问题:
我按照您书上WDM驱动开发的步骤自己做了一个驱动。板子写上您提供的固件程序后,驱动安装成功了。但是使用您提供的上位及程序没有办法找到USB设备。使用你提供的驱动则一切正常。我反复按照你书上写的步骤做了好几遍,结果都是一样。不知道问题出在什么地方。希望能认识您并得到您的指点。谢谢!我的邮箱:gugeng1985@163.com  QQ:249705381

使用特权

评论回复
computer00|  楼主 | 2012-1-5 19:42 | 显示全部楼层
应该是GUID对不上的原因。每个驱动都有一个唯一的GUID。

使用特权

评论回复
jinguoju| | 2012-4-22 22:34 | 显示全部楼层
本帖最后由 jinguoju 于 2012-4-23 11:49 编辑

圈圈大哥,你好。买了你的书,仔细研究了一遍终于对USB入门了,在此表示非常感谢!!
我在使用STM32做自己的自定义设备时,可以枚举到自己的设备,在使用端点1(中断传输)或者端点2(块传输)进行通信时多不能成功,还请圈圈给指点指点。
下面是问题的具体描述:
1.上位机应用程序:使用的是您提供的自定义设备测试应用程序(MyUsbDeviceTestApp),我修改了Class Guid和接口类GUID 以适合自己的设备;
2.驱动程序:按照《圈圈教你玩USB》第九章做的,基本上没做其他修改,看上去没有什么问题;
3.下位机程序:按照ST提供的固件3.1版本中的Common_HID进行的修改。
下面是下位机复位时端点2的定义:
  SetEPType(ENDP2, EP_BULK);
  SetEPTxStatus(ENDP2, EP_TX_STALL);  
  SetEPRxAddr(ENDP2, ENDP2_RXADDR);  
  SetEPTxAddr(ENDP2, ENDP2_TXADDR);
  SetEPRxCount(ENDP2, 8);
  SetEPTxCount(ENDP2, 8);
  SetEPRxValid(ENDP2);

下面是下位机上端点2的处理函数:
void EP2_OUT_Callback(void)
{  
  count_out = GetEPRxCount(ENDP2);

  PMAToUserBufferCopy(buffer_out, ENDP2_RXADDR, count_out);
  
  SetEPRxStatus(ENDP2, EP_RX_VALID);  
}
在应用程序的消息窗口是这么提示的:
设备已连接 (22:32:43)
开始查找设备 (22:32:45)
设备已经找到 (22:32:45)
打开设备成功 (22:32:45)
端点2发送数据8字节 (22:32:47)
01 02 03 04 05 06 07 08
端点2发送失败,错误代码:31 (22:32:47)

今天我用USBlyzer获取了下面的信息:
12.png

使用特权

评论回复
jinguoju| | 2012-4-23 22:14 | 显示全部楼层
端点2发送失败,错误代码:31  能不能说明是应用程序与驱动程序不能有效地配合?

使用特权

评论回复
liuruyan| | 2012-4-25 22:28 | 显示全部楼层
oo大哥,我把光盘里的每个程序下到开发板后连电脑都显示无法识别,串口数据就只有“USB总线复位。  USB总线挂起。”这2个重复3-4次,是什么问题?

使用特权

评论回复
jinguoju| | 2012-4-26 22:52 | 显示全部楼层
我的问题已经解决,是下位机程序的问题。看这个帖子找到的答案 https://bbs.21ic.com/viewthread.p ... p;extra=&page=1   
在此对vigia表示强烈的感谢!
同时感谢圈圈,因为从圈圈这里我的确学到了很多。

使用特权

评论回复
阮天宇00| | 2012-5-21 16:55 | 显示全部楼层
刚订了本,还没到。估计明天就能到了

使用特权

评论回复
shiwai2011| | 2012-5-28 13:25 | 显示全部楼层
00,我看到3.12节,在第一次获取完语言ID,产品序列号以及全部的配置描述符集合后,端点0输出0x80 0x06 0x00 0x06 0x00 0x00 0x0A 0x00,然后就一直是“端点0输入中断”“端点1输入中断”,没有继续获取语言ID,产品序列号和配置描述符。但是我用关盘中的代码调试,却没有出现这个问题。。。

使用特权

评论回复
wangcong02345| | 2012-6-15 21:06 | 显示全部楼层
请教楼主一个问题: 关于EP0输入中断,书中P92上部,“当前面的数据成功发送后,端点0输入中断就会产生”
当数据成功发送后,我加了一些打印(自己实现了一个printf),但是端点0输入中断没有发生,这是什么情况?
是不是跟串口中断有关?
还是说串口中断影响到了这个EP0输入中断?

使用特权

评论回复
阿的| | 2012-7-28 11:24 | 显示全部楼层
这边书是入门USB的好书

使用特权

评论回复
USB新手| | 2013-1-14 09:44 | 显示全部楼层
求教d12开发的USB设备可以在安卓使用吗

使用特权

评论回复
Xplain| | 2013-1-26 23:28 | 显示全部楼层
圈圈的书讲USB还真不错,通俗易懂,我最近学USB,正看这本书

使用特权

评论回复
hkl_fs| | 2013-3-26 21:57 | 显示全部楼层
呵呵,直面书的作者,幸会啊。

使用特权

评论回复
tianhaolan| | 2013-4-23 13:07 | 显示全部楼层
为什么在win7下做USB实验的时候,用端点2,当端点2的数据包超过64各字节的时候就会出现识别错误呢?就是在设备管理器哪里会出现叹号,在XP下就没有问题。

使用特权

评论回复
outstanding| | 2013-7-26 15:57 | 显示全部楼层
下次看了再来请教

使用特权

评论回复
黄小俊| | 2013-10-2 17:18 | 显示全部楼层
学习一下。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则