电脑圈圈做的USB设备,嘿嘿~~~~

[复制链接]
楼主: computer00
手机看帖
扫描二维码
随时随地手机跟帖
与时俱进| | 2014-3-17 23:03 | 显示全部楼层
本帖最后由 与时俱进 于 2014-3-17 23:12 编辑
computer00 发表于 2014-2-20 21:10
这个是自定义的设备,装对应的驱动就可以了,书里面有的。

又对USB感兴趣,重读《圈圈教你玩USB》,有个问题请教圈圈:
D12接收AcknowledgeSetup命令后通过USB总线给主机发送应答包吗?

使用特权

评论回复
computer00|  楼主 | 2014-3-18 08:54 | 显示全部楼层
与时俱进 发表于 2014-3-17 23:03
又对USB感兴趣,重读《圈圈教你玩USB》,有个问题请教圈圈:
D12接收AcknowledgeSetup命令后通过USB总线给 ...

不是。应答包早就发了。发送这个命令后,才可以重新接收数据,不然就会一直NAK。

使用特权

评论回复
与时俱进| | 2014-3-18 08:57 | 显示全部楼层
computer00 发表于 2014-3-18 08:54
不是。应答包早就发了。发送这个命令后,才可以重新接收数据,不然就会一直NAK。 ...

就是说所有应答包都是D12自动完成的,没51什么事?

使用特权

评论回复
computer00|  楼主 | 2014-3-18 13:16 | 显示全部楼层
与时俱进 发表于 2014-3-18 08:57
就是说所有应答包都是D12自动完成的,没51什么事?

是的。

使用特权

评论回复
与时俱进| | 2014-3-18 13:27 | 显示全部楼层
computer00 发表于 2014-3-18 13:16
是的。

谢谢!

使用特权

评论回复
与时俱进| | 2014-3-25 21:01 | 显示全部楼层
本帖最后由 与时俱进 于 2014-3-25 21:06 编辑
computer00 发表于 2014-3-18 13:16
是的。

再请教圈圈:光盘的USBTOIDE例程里WRITE(10)命令为什么没有写硬盘?
write(10).JPG

使用特权

评论回复
与时俱进| | 2014-3-25 21:23 | 显示全部楼层
明白了。
在void UsbEp2Out(void)函数里
if(TransportStage==DATA_STAGE)
{
  ProcScsiOutData(); //处理SCSI输出函数
}

来处理对磁盘的写操作。是这样吗?

使用特权

评论回复
computer00|  楼主 | 2014-3-26 10:33 | 显示全部楼层
与时俱进 发表于 2014-3-25 21:23
明白了。
在void UsbEp2Out(void)函数里
if(TransportStage==DATA_STAGE)

是的撒……
这里只是接收到命令,数据还没来呢……

使用特权

评论回复
colin1129| | 2014-4-12 23:05 | 显示全部楼层
我够了圈圈兄的书,正需要usb开发。。。

使用特权

评论回复
与时俱进| | 2014-4-16 00:12 | 显示全部楼层
圈圈写的例程很容易理解。

使用特权

评论回复
baconlong| | 2014-5-24 15:21 | 显示全部楼层
版主好,我用STM32的自带的USB接口,做了个自定义USB设备,USB驱动是仿照您《圈圈教你玩USB》自定义USB设备的驱动,可是,在安装.sys文件时,电脑蓝屏,找不出原因来啊。

使用特权

评论回复
raoxianbin| | 2014-6-4 20:18 | 显示全部楼层
斑竹 请问有USB的虚拟串口驱动吗   最近调USB通信,但是虚拟串口驱动一直装不上,烦请解答下

使用特权

评论回复
wangbao619| | 2014-6-6 10:41 | 显示全部楼层
看看

使用特权

评论回复
zzytyy| | 2014-9-20 18:01 | 显示全部楼层
hi, 圈圈兄,我在调试usbhid的时候,发现pdiusbd12在枚举的时候,有时候ep0输出中断会出现长度为0的setup  packet。  但是我看你的第三章调试输出里面并没有出现这种情况。很迷惑。还望解惑。谢谢。
IntSrc: 0x2->Ep0In->
IntSrc: 0x1->Ep0Out->Read Ep0,buf: 0 Byte(s).
。。。。。。

使用特权

评论回复
xue_tu| | 2015-7-19 15:30 | 显示全部楼层
圈圈老师好 请问你的U盘 FAT 文件中磁盘名的中文是用什么码的,就是“圈圈的假U盘”,那个不是Unicode码,请问是什么码?我想自己改改磁盘名

使用特权

评论回复
hxcnz| | 2015-7-21 13:26 | 显示全部楼层

使用特权

评论回复
jingaaa| | 2017-5-3 11:36 | 显示全部楼层
好资料

使用特权

评论回复
ARF1939261764| | 2018-3-21 12:23 | 显示全部楼层
哈哈,正跟着您的书学习,已经到自定义HID了

使用特权

评论回复
devilxiaowei| | 2018-5-7 10:10 | 显示全部楼层
你好,我在做上位机与下位机通过USB通信,USB做成了mass storage,在做上位机的时候,会显示这两个错误1、调用DeviceIoControl()测试SCSI的查询命令,失败,调用GetLastError(),返回错误代码50(不支持网络请求)
2、调用WriteFile()测试写数据,失败,调用GetLastError(),返回错误代码87(参数错误),请问这是为啥

使用特权

评论回复
dukedz| | 2018-5-20 16:26 | 显示全部楼层
本帖最后由 dukedz 于 2018-5-20 16:28 编辑

8、9 年前看的 00 的书,第一次看到那么工整有条理的代码,给我很大启发,不过不知道现在回头看是不是还觉得工整就不好说了

感觉这书,或学习 usb 的方法的最大败笔在于选择了 windows 平台,我看到书后面的驱动部分整个人就不好了,要用付费的工具生成一堆代码,然后再去修改。。。完全不能接受,书上也是草草略过。。。
后来用了 linux, 发现如果在 linux 下学习 usb 会畅顺很多,可以很方便的调试、抓包,哪怕是厂商私有设备,也不用写驱动,直接用 libusb 写几行 C 代码就可以通讯,容易很多。。。(而且在 linux 调通后,基于 libusb 的代码也可以直接在 windows 上运行。。。)

使用特权

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

本版积分规则