Skip to main content
Visitor II
November 19, 2022
Solved

Why USB Virtual Com Device miss Empty Byte?

  • November 19, 2022
  • 4 replies
  • 1620 views

I have created project USB Virtual Com Device on STM 32F407. I set size of parcel = 32 byte. When i send parcel and befor parcel ends byte will be "0" STM 32 don't read bytes after "0". If no "0" byte always is OK. What doe's it mean? How get full parcel with "0" bytes inside parcel?

0693W00000WItotQAD.png 

0693W00000WItp3QAD.png

    This topic has been closed for replies.
    Best answer by Pavel A.

    On your screenshot, line 285: is this a strncpy?

    Do not use string functions on raw (binary) data.

    4 replies

    Super User
    November 20, 2022

     "0" is "end of string" sign in C.

    so if data is a string of characters, NULL is signal for end of string ( and transmission).

    ABask.1Author
    Visitor II
    November 20, 2022

    That is, it turns out that I cannot send the DEC array = {1, 10, 0, 0, 0, 75, 255, 117 , 256, 128}.

    Will I have to reformat the array to a char? So this will increase the size of my package. How then to define "0"?

    ABask.1Author
    Visitor II
    November 20, 2022

    That is, it turns out that I cannot send the DEC array = {1, 10, 0, 0, 0, 75, 255, 117 , 256, 128}.

    Will I have to reformat the array to a char? So this will increase the size of my package. How then to define "0"?

    Super User
    November 20, 2022

    why not send data as ascii ? so 0x0 -> 0x30 ;

    Pavel A.Answer
    Super User
    November 20, 2022

    On your screenshot, line 285: is this a strncpy?

    Do not use string functions on raw (binary) data.

    ABask.1Author
    Visitor II
    November 21, 2022

    memcpy solved the problem, thanks a lot