打印

一个奇怪问题,帮帮看看

[复制链接]
1931|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hpy013|  楼主 | 2007-11-26 20:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用BUS HOUND抓到的数据:
D0:00 00 00 00 00 00
DI:01 FF FF FF FF FF
明明我送给PC的全是FF啊,没有0x01,为什么会有0x01?这是有时候会出现,而且出现的都是第一个。
我想问BUS HOUND 中DI显示出来的数据,是不是一定是我这边USB DEVICE送给PC的数据啊?

相关帖子

沙发
computer00| | 2007-11-26 21:11 | 只看该作者

不会吧?也许是你看到集线器上的数据了?没见过这样的

使用特权

评论回复
板凳
平常人| | 2007-11-26 21:15 | 只看该作者

你的USB设备是什么类型的?你看到的是哪个pipe的?

如果是HID设备的中断pipe,多出的01有可能是Report ID。

设备端的程序是你自己写的吗?

使用特权

评论回复
地板
computer00| | 2007-11-26 21:18 | 只看该作者

Report ID也是要自己送的呀,而楼主说自己送的ff,我晕

使用特权

评论回复
5
hpy013|  楼主 | 2007-11-26 21:20 | 只看该作者

我这边调试,是PC应用软件和我的低层USB通信

现在PC软件那边怀疑是我这边发错了数据。但是我检查了我的程序,没有问题,调试时,我发给PC的都是FF,为什么用BUS HOUND会出现0x01呢?不过0x01是在中间的传输中会有。我的协议是:
DO:B7 D0 00 06
DI:B7 D0 00 01
D0:00 00 00 00 00 00
DI:FF FF FF FF FF FF
这是正常的
但是有时会出现
DO:B7 D0 00 06
DI:B7 D0 00 01
D0:00 00 00 00 00 00
DI:01 FF FF FF FF FF

这些都是BUS HOUND抓的数据,而且看的是我自己的设备。真是奇怪了。

使用特权

评论回复
6
computer00| | 2007-11-26 21:26 | 只看该作者

貌似是上面那个01遗留下来的?

使用特权

评论回复
7
hpy013|  楼主 | 2007-11-26 21:31 | 只看该作者

是啊,但说不过去啊,我是用两个缓冲区啊

使用特权

评论回复
8
平常人| | 2007-11-26 21:37 | 只看该作者

4楼computer00说的对,Report ID也应是从自己的Buffer发出去的

6楼的猜测有道理,可以试试在之前不要发01,而是发其他的数据。

使用特权

评论回复
9
computer00| | 2007-11-26 21:38 | 只看该作者

如果每次都这样,那干脆改改协议算了,哈哈,前面一个扔

不过这只是赶时间的权宜之计...不赶时间的话就先慢慢找原因吧

发送数据时,也可以在写缓冲那里搞个串口将要写的数据扔出来看看,确认下。

使用特权

评论回复
10
hpy013|  楼主 | 2007-11-26 21:52 | 只看该作者

等明天,PC修改软件,用其他代替0x01,看会不会出现这样问题

然后再做决定。哈哈
谢谢~~

使用特权

评论回复
11
hpy013|  楼主 | 2007-11-27 17:20 | 只看该作者

今天调试了很多次

还是没搞定。
现在可以肯定的是就是上面的0x01,遗留下来,把第二次发送数据的第一个字节给覆盖了。

使用特权

评论回复
12
computer00| | 2007-11-27 17:26 | 只看该作者

是不是上位机的驱动程序没写对啊?缓冲区重叠了

另外你先确认下,写入到USB端点去的数据是不是正确的,有时你以为是正确的,
但是可能因为指针操作什么的,越界了...

使用特权

评论回复
13
hpy013|  楼主 | 2007-11-27 20:28 | 只看该作者

哈哈,找出原因了

是双缓冲结构搞得鬼。
我现在将此端点只用一个缓冲区,就没问题了。原因是:我实际要发的数据是91个字节,而单个缓冲是64字节,双缓冲是128字节,这样程序,就会利用两个缓冲区,而有时会把上次的数据覆盖进来。还是小心比较好,哈哈~~

使用特权

评论回复
14
computer00| | 2007-11-27 20:32 | 只看该作者

恭喜。俺一直用单缓冲,哈哈,处理起来容易。

使用特权

评论回复
15
平常人| | 2007-11-27 20:56 | 只看该作者

晕!双缓冲结构是最基本的数据结构之一,同步好读写指针

好在楼主及时找到问题所在,可以睡个好觉了。

使用特权

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

本版积分规则

51

主题

516

帖子

1

粉丝