Loading...
 

Zephyr project on STM32

   Zephyr Workbench, a VSCode extension to manage Zephyr on STM32.
It enables users to easily create, develop, and debug Zephyr applications.
Main features:
  • Install host dependencies.
  • Import toolchain and SDK.
  • Create, configure, build and manage apps.
  • Debug STM32.
You can directly download it from the VSCode marketplace
For more details, visit the Zephyr Workbench

System Workbench for STM32


USB CDC Receiving

Hello.

I transmit from PC to STM32F4 big packets through USB CDC FS. There aare more than 64 bytes. In this case funtion CDC_Receive_FS () is called more than one time. I want to know, can I know if the receiving frame is a single message or part of big packet, can I know the size of such big packet? (Maybe there is some flag or smth else.)

yes you can but you have to modify the cdc base class code

the usb transaction is is setup in
USBD_CDC_ReceivePacket
...
USBD_LL_PrepareReceive(pdev,
CDC_OUT_EP,
hcdc->RxBuffer,
CDC_DATA_FS_OUT_PACKET_SIZE);
}

CDC_DATA_FS_OUT_PACKET_SIZE is 64 that tell usb layer to get ready to receive up to 64 byte from host.

you could set this to any 64 mulmiple if to receie more at once
But if you do it is likley to brake any default host “com driver” and s/w.

With that you’ll be abble to receive longer “usb transfer” but you want get any “64” byte long message :-(
on usb when both host and device side want to to do biger transfer than the max packet size (64 here)
it require both side to be aware of it so that a spcial zero length packet is send for any exact 64 byte transfer. without it the over side wait for more.

So it may work but with custom host s/w only.


Hi everyone,

I am looking for an answer to the same question as Slavius.

Here, I do not want to modify the USBD_CDC_ReceivePacket that can break any default host “com driver” as diabolo38 said. I want to know if there is any raised flag when receiving more than 64 bytes? (the max packet size to receive is 64).

example:
the host send a 100 bytes packet to the device. (the packet size can differ in time). So it will be splitted into a 64 bytes and a 36 bytes.
the question is: will there be a flag that will be raised to say to the device “you received a 64 bytes packet but another to complete the packet is coming”?

thanks


 

Newest Forum Posts

  1. emerald casino online i240jx by StephenNug, 2026-02-27 00:08
  2. milkyway online casino games b28sos by StephenNug, 2026-02-25 10:25
  3. casino blacklist online i72xxd by StephenNug, 2026-02-23 20:11
  4. best online casinos canada reddit a57fpx by StephenNug, 2026-02-23 19:01
  5. hollywood casino online blackjack p271nq by StephenNug, 2026-02-22 21:12
  6. three card poker online casino y82gxs by StephenNug, 2026-02-22 20:34
  7. sugarhouse online casino pa j13lyy by StephenNug, 2026-02-22 03:56
  8. casino online latvia f40blg by StephenNug, 2026-02-21 19:10
  9. casinos online reviews a94tvt by StephenNug, 2026-02-21 09:22
  10. royal ace online casino no deposit bonus codes u60dqh by StephenNug, 2026-02-20 20:00

Last-Modified Blogs