2017-05-30 256 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接收數據。我的終端軟件出現了問題。我使用串口監視器來監視從串口接收到的數據,但是這個串口監視軟件不能自行打開串口,如果有其他軟件打開串口並接收數據,它會監視數據接收。我不知道。 謝謝