2017-05-30 165 views
0

我使用stm32l151,我想在cdc模式下使用usb外设。我用stm32 cubeMx来生成项目。但是函数CDC_Transmit_FS()总是返回USBD_BUSY。谁能帮我?STM32 USB CDC没有工作

这里是我的代码:

while (1) 
{ 
    CDC_Transmit_FS(Buffer, 6); 
    HAL_Delay(2000); 
} 

我只加了上面的代码由STM32cubeMX创建的项目,但没有奏效。

+0

我可以告诉,https://stackoverflow.com/questions/33549084/stm32cubemx-usb-cdc-vcp这个工程。 –

+0

@BenceKaulics我看到这篇文章,我写的代码就像那样。但它不起作用。 – Mohammad

+0

在硬件方面,它是一个自定义板卡吗? USB线路如何连接? –

回答

0
  1. STM库是有问题的,当你尝试发送很多更大的数据包时它会停止运行。
  2. Windows驱动程序存在问题,并且数据包之间存在相当长的延迟。因此12MB很难归档 - 使用CubeMx我只能拥有大约3-4Mb(发送数据包时为12MB)。
  3. 我的另一个问题 - 我需要发送一些数据到设备bofore,我可以传输下一个数据包(最大8kB在我的情况),否则它会随机停止。
0

幸运的是,问题解决了,我可以在PC上从STM32接收数据。我的终端软件出现了问题。我使用串口监视器来监视从串口接收到的数据,但是这个串口监视软件不能自行打开串口,如果有其他软件打开串口并接收数据,它会监视数据接收。我不知道。 谢谢