Skip to main content
transistorboy32
Associate II
April 27, 2018
Question

STM32 CubeMX USB CDC does not transmit

  • April 27, 2018
  • 1 reply
  • 561 views
Posted on April 27, 2018 at 23:51

  • STM32F407VETx
  • Blank CubeMX project template plus USB_DEVICE middleware using CDC class
  • SW4STM32
  • firmware STM32Cube FW_F4 V1.16.0
  • only modified code from generated templates is this (in main.c):

      /* USER CODE BEGIN 2 */

      char buf[] = {0x01,0x02,0x03,0x04};

      CDC_Transmit_FS(buf, 4);

      /* USER CODE END 2 */
  • Using Beagle USB hardware capture device to monitor USB traffic
  • Host is Linux running Python script using usb.core and usb.util (verified working to read/write similar USB device)
  • Expected result: seeing an IN packet on the USB capture
  • Actual result: no IN packet (NAK was issued when host polled for data)
  • CDC_Transmit_FS returns USBD_OK
  • STM32 device can read data from host application (with additional modified code)
  • Tried: increasing heap to 0x400, adding delays in various places, using different packet/data sizes/lengths
  • CubeMX & project code attached

Any ideas?

    This topic has been closed for replies.

    1 reply

    Tesla DeLorean
    Guru
    August 10, 2018

    Sorry, bumping old zombie unanswered threads off my feed

    The F4 library is out at V1.21.0, please try to use something that's at least remotely current.

    Check stack and heap allocations. Instrument code for real-time diagnostic output.

    Tips, Buy me a coffee, or three.. PayPal VenmoUp vote any posts that you find helpful, it shows what's working..