stm32f407的USB虚拟串口发送问题

2019-08-17 08:07发布

本帖最后由 无帝老三 于 2017-6-12 18:49 编辑

使用USB虚拟串口官方例程修改
/**
  * @brief  CDC_Transmit_FS
  *         Data send over USB IN endpoint are sent over CDC interface
  *         through this function.           
  *         @note
  *         
  *                 
  * @param  Buf: Buffer of data to be send
  * @param  Len: Number of data to be send (in bytes)
  * @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL or USBD_BUSY
  */
uint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t Len)
{
  uint8_t result = USBD_OK;
  /* USER CODE BEGIN 7 */
  USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef*)hUsbDeviceFS.pClassData;
  //if (hcdc->TxState != 0){
  //  return USBD_BUSY;
  //}
  USBD_CDC_SetTxBuffer(&hUsbDeviceFS, Buf, Len);
  result = USBD_CDC_TransmitPacket(&hUsbDeviceFS);
  /* USER CODE END 7 */
  return result;
}
当调用5次CDC_Transmit_FS发送数据时,PC端串口会接收不到最后一次调用CDC_Transmit_FS发送的数据,
当再次执行上述操作时,前次操作未上传的数据会出现再本次操作的第一条。
请问下大家,是什么原因导致的?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。