bjvid
驱动牛犊
驱动牛犊
  • 注册日期2003-02-21
  • 最后登录2003-06-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1318回复:4

(usb-d12)端点0-OUT中断的处理........(请各位帮帮忙,急!!谢谢了))

楼主#
更多 发布于:2003-03-06 09:34
请问在该中断的处理中,最后几行:
else if (bEPPflags.bits.control_state == USB_RECEIVE)
       { i =D12_ReadEndpoint(0, EP0_PACKET_SIZE,
    ControlData.dataBuffer +  ControlData.wCount);
    ControlData.wCount += i;
   if( i != EP0_PACKET_SIZE || ControlData.wCount >=  ControlData.wLength)
      {    bEPPflags.bits.setup_packet = 1;
     bEPPflags.bits.control_state = USB_IDLE;  -------1
      }
  }
else {
  bEPPflags.bits.control_state = USB_IDLE;         -------2
     }
该语句共有两句1,2
bEPPflags.bits.control_state = USB_IDLE;
  请问在判断数据已经接受完毕后使其为IDLE状态,可在得出数据还没有完之后怎么也是IDLE状态呢??????
  不是说数据一次没有取完,则赋为RECEIVE态,等待第二次的out中断的到来吗??如果为IDLE态,那他又是如何工作的呢????



[编辑 -  3/6/03 by  bjvid]
puppypyb
驱动牛犊
驱动牛犊
  • 注册日期2003-01-14
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分52分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-03-06 11:38
这个问题 我建议你仔细看一下 周立功 的固件编程指南!

后面的  控制端点处理程序  流程图解释的很详细!!!
bjvid
驱动牛犊
驱动牛犊
  • 注册日期2003-02-21
  • 最后登录2003-06-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-03-06 11:08
不是啊,这应该是pc将数据给mcu啊???

还有就是----1--句是表示数据传完了,所以bEPPflags.bits.setup_packet = 1;
从而进入mainloop中处理

而----2----句是表示数据还未传完吧?????
我觉得该句应该为:
bEPPflags.bits.control_state = USB_RECEIVE;
等待再一次的out中断的到来,对吗????
drivermaster
驱动中牛
驱动中牛
  • 注册日期2003-02-26
  • 最后登录2004-06-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-03-06 10:49
关键是这一条语句:bEPPflags.bits.setup_packet = 1;
当i>ControlData.wLength 表示数据一次不能发送完毕,并置bEPPflags.bits.setup_packet = 1;同时进入IDLE状态,并发送数据给pc机,当接收到pc的应答信号以后,mcu会将留下的数据继续发送给pc.
菩提本无树,明镜亦非台, 本来无一物,何处染尘埃? 身似菩提树,心如明镜台, 愿将勤拂拭,勿使染尘埃。
drivermaster
驱动中牛
驱动中牛
  • 注册日期2003-02-26
  • 最后登录2004-06-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-03-06 10:38
太深噢了!
菩提本无树,明镜亦非台, 本来无一物,何处染尘埃? 身似菩提树,心如明镜台, 愿将勤拂拭,勿使染尘埃。
游客

返回顶部