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

[复制链接]
 楼主| 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;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

52

主题

230

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部