我正在使用stm32l151,我想在cdc模式下使用usb外设。我使用了stm32 cubeMx来生成项目。但是函数CDC_Transmit_FS()始终返回USBD_BUSY。谁能帮我?

这是我的代码:

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


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

最佳答案

STM库是有问题的,例如,当您尝试发送许多更大的数据包时,它就会停滞。
Windows驱动程序有问题,数据包之间的延迟很长。因此,很难归档12MB的内存-使用CubeMx,我只能拥有3-4Mb(发送数据包时为12MB)。
我遇到的另一个问题-我需要先向设备发送一些数据,然后才能传输下一个数据包(在我的情况下,最大为8kB),否则它会随机停止。

关于c - STM32 USB CDC无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44256745/

10-12 16:05