STM32 USB CDC不起作用

时间:2017-05-30 08:02:54

标签: c usb microcontroller stm32 cdc

我使用的是stm32l151,我想在cdc模式下使用usb外设。我使用stm32 cubeMx来生成项目。但是函数CDC_Transmit_FS()总是返回USBD_BUSY。有谁可以帮助我?

这是我的代码:

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

我只将上面的代码添加到STM32cubeMX创建的项目中,但它没有用。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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