cancel
Showing results for 
Search instead for 
Did you mean: 

Why USB Virtual Com Device miss Empty Byte?

ABask.1
Associate II

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 discussion is locked. Please start a new topic to ask your question.
1 ACCEPTED SOLUTION

Accepted Solutions
Pavel A.
Super User

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

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

View solution in original post

6 REPLIES 6
AScha.3
Super User

 "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).

If you feel a post has answered your question, please click "Accept as Solution".
ABask.1
Associate II

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"?

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"?

AScha.3
Super User

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

If you feel a post has answered your question, please click "Accept as Solution".
Pavel A.
Super User

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

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

memcpy solved the problem, thanks a lot