阅读:1451回复:8
给120分
主机向我发送了取得设备描述符的请求80 06 00 01 00 00 40 00,固件程序也将设备描述符的内容12 01 00 01 DC 00 00 10 71 04 66 06 00 01 00 00发送到缓冲区中,并且写入了FA这条指令,可是我怎么能够知道主机将这些数据取走了呢?因为,在执行了取得设备描述符的中断后,固件把描述符发送到缓冲区后,就跳出了子程序,回到主程序,然而却就不再产生中断了.这是为什么呢?
|
|
最新喜欢:![]() |
沙发#
发布于:2004-04-06 15:24
在主程序中程序一下USB的状态寄存器, 看看数据是否被读取了.
|
|
|
板凳#
发布于:2004-04-06 15:55
用BusHound抓一下数据,看看主机有没有数据(IN DATA)。另外加一个COM口,把接收到的数据和要发送的数据扔到COM口对比一下。
不产生中段的原因一般是设置的问题。不知兄是用了哪款MCU呢? |
|
地板#
发布于:2004-04-06 16:30
我用的是89c52+d12,能指点迷津吗?
|
|
地下室#
发布于:2004-04-06 16:57
我也遇到了同样的问题,已经停滞好长时间了。我不能从BUS HOUND看到80 06 00 01 00 00 40 00和12 01 00 01 DC 00 00 10 71 04 66 06 00 01 00 00,但我却能读到我收到了80 06 00 01 00 00 40 00。发送描述符后我也不能确定主机是否收到了,请专家指点迷津。
|
|
5楼#
发布于:2004-04-06 17:05
哥们,难兄难弟呀!
|
|
6楼#
发布于:2004-04-06 17:12
如果你是用D12做,你可以先下载ZLG的代码,能后逐步修改,这样的开发效力比较高,毕竟站在巨人的肩膀上。(建议使用这种方法)
如果你要自己完成所有的部分最好先做好DEBUG,这样好CHECK问题的地方。上面说BUSHOUND和COM都是解决问题的好方法。自己写,最好先禁止掉中断,用查寻的方法比较可靠。 |
|
7楼#
发布于:2004-04-06 18:21
哦
|
|
|
8楼#
发布于:2004-04-07 11:12
如何给分?
|
|