打印
[STM32F1]

STM32的USB数据处理

[复制链接]
1175|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
要发送的数据已经是0了 为什么还要分开这个地方处理     一个是发送的数据是最大可发送数据的整数倍 一个不是整数倍 这有什么关系

截图03.jpg (55.63 KB )

截图03.jpg
沙发
想做大牛的小马| | 2014-7-30 14:22 | 只看该作者
这个代码写的貌似是很乱哦。。不过 Data_Mul_MaxPacketSize置为1的时候并不是表示是其整数倍,
而是在 pInformation->Ctrl_Info.Usb_wLength  为0 的时候,这个时候发送0字节包响应,而下面的else,我觉得应该
是在异常的时候才走进去的。。。。~
  else if (pInformation->Ctrl_Info.Usb_wLength < pInformation->USBwLength)
    {
      if (pInformation->Ctrl_Info.Usb_wLength < pProperty->MaxPacketSize)
      {
        Data_Mul_MaxPacketSize = FALSE;
      }
      else if ((pInformation->Ctrl_Info.Usb_wLength % pProperty->MaxPacketSize) == 0)
      {
        Data_Mul_MaxPacketSize = TRUE;
      }
    }   

使用特权

评论回复
板凳
香水城| | 2014-7-31 11:05 | 只看该作者
当然有关系~~~ 这个代码一点都不乱。

走到第一排箭头的时候,说明要发送的数据都已经发送出去了。

假设EP的MPZ(最大数据包长度)=64,那么在主机的要求下我发送完成了128个字节,还是在主机的要求下我发送完成了80个字节,接下来的处理是不一样的!

你说会有什么不一样的处理?想明白了,就知道这里第二排的箭头和第三排的箭头为什么要出现了。

使用特权

评论回复
地板
想做大牛的小马| | 2014-7-31 17:25 | 只看该作者
在香版主的指导下,看来了一下午代码,终于开始懂了,还得继续看

使用特权

评论回复
5
picasso101| | 2014-9-25 16:19 | 只看该作者
。。。。。。。。。没看懂

使用特权

评论回复
6
tianli1980| | 2014-10-30 22:42 | 只看该作者

倍感压力啊,实在是看不懂啊,好多词还搞不懂。

使用特权

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

本版积分规则

321

主题

515

帖子

3

粉丝