打印
[USB接口]

stm32usb串口中传输数据DataIn,主动上传数据 要发空长度包吗?

[复制链接]
5027|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ljxh401|  楼主 | 2021-3-15 14:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在上传描述符时候,主机会期待usb设备上传指定数量的数据,如果usb 的数据长度少于指定长度并且是最大包长度的整数倍,上传空包 结束传输,模式主机空等待!这个好理解
在数据传输阶段,串口数据的长度本身就不是固定,液不用=到指定数据,应该不用传输空包才对吧
但是看 stmcubex 生成的代码,有上传空包,是它不对 还是我理解错了
  if (pdev->pClassData != NULL)
  {
    if ((pdev->ep_in[epnum].total_length > 0U) && ((pdev->ep_in[epnum].total_length % hpcd->IN_ep[epnum].maxpacket) == 0U))
    {
      /* Update the packet total length */
      pdev->ep_in[epnum].total_length = 0U;

      /* Send ZLP */
      USBD_LL_Transmit(pdev, epnum, NULL, 0U);
    }
    else
    {
      hcdc->TxState = 0U;
    }
    return USBD_OK;

使用特权

评论回复

相关帖子

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

本版积分规则

50

主题

221

帖子

3

粉丝