newtrace
驱动牛犊
驱动牛犊
  • 注册日期2002-11-15
  • 最后登录2003-10-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1779回复:7

请教高手关于PDIUSBD12数据传输

楼主#
更多 发布于:2003-02-25 23:47
第一次做USB产品,我选用了D12做桥接芯片,现在遇到的问题是:
我用端点2进行数据传输时,PC机发送64K的数据块时,我的单片机程序应该怎样控制接收数据,哪位大侠能够给我指点一下,不胜感激!

最新喜欢:

skyeyeskyeye
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-02-26 09:21
如果你得到通知说要接收n字节的数据,那你就设定一个全局变量,把n赋给它,如果这个n大于64,那你每接收64字节就将这个全局变量减64,下一次就检查它是否还大于64,如果不是接收完这一个数据包后,本次传输就完了。
lily311
驱动小牛
驱动小牛
  • 注册日期2002-08-15
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望26点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-02-26 09:25
jinghuiren说得很详细了.
补充一下,\"下一次就检查它是否还大于64\",这个下一次,通常应该在第一次传输结束引起的中断里面,即ep2_TxDone()中断服务例程.
newtrace
驱动牛犊
驱动牛犊
  • 注册日期2002-11-15
  • 最后登录2003-10-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-02-26 20:44
谢谢两位的回答,我是初学者,对USB很菜,还是有两个问题:
1。我该怎样得到要接收的字节数n.
2.当我收到第一个64字节的数据后,需要一段时间来处理数据,我是不是可以在ep2_rxdone()中先禁止中断,等数据处理完后再允许中断,而且在未收完64Kbytes的数据期间,能否有总线操作?
h13
h13
驱动老牛
驱动老牛
  • 注册日期2002-07-10
  • 最后登录2008-10-24
  • 粉丝1
  • 关注1
  • 积分0分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-02-26 21:11
借地方问一下:app里向d12发送数据超过64字节的话,如下可以吗?(试了一下没结果,不知道是不是方法不对)

    ioRequest.uAddressL=0;
    ioRequest.bAddressH=0;
    ioRequest.uSize=4096;  //修改这里
    ioRequest.bCommand=0x80;

    ioBlock.uOffset=0;
    ioBlock.uLength=sizeof(IO_REQUEST);
    ioBlock.pbyData=(PUCHAR)&ioRequest;
    ioBlock.uIndex=SETUP_DMA_REQUEST;

    DeviceIoControl(hdlUsbDev, //请求传送
                IOCTL_WRITE_REGISTERS,
                (PVOID)&ioBlock,
                sizeof(IO_BLOCK),
                NULL,
                0,
                &nBytes,
                NULL);
    .......
    WriteFile(hdlUsbPipe3,
                buf,    //4096个字节的缓冲
                4096,
                &nBytes,
                NULL);
<table> [color=#8040FF]神,常虚以凝而灵明湛定 气,常静以养而充盈流通[/color] </table>
newtrace
驱动牛犊
驱动牛犊
  • 注册日期2002-11-15
  • 最后登录2003-10-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-03-24 09:11
谢谢各位支持,问题已解决
guo_bin76
驱动牛犊
驱动牛犊
  • 注册日期2003-02-13
  • 最后登录2010-11-20
  • 粉丝0
  • 关注0
  • 积分129分
  • 威望74点
  • 贡献值1点
  • 好评度12点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-03-24 09:33
我想
snow
rimrock
驱动小牛
驱动小牛
  • 注册日期2002-10-15
  • 最后登录2004-10-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-03-24 18:50
谢谢各位支持,问题已解决


给大家讲一讲你是如何解决的?

[编辑 -  3/24/03 by  rimrock]
游客

返回顶部