How use fprintf or fputs to send a zero hexadecimal.

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

How use fprintf or fputs to send a zero hexadecimal.

跳至解决方案
902 次查看
jesusayala
Contributor I

i'm trying to send to serial port the next 

char data[] = {0x02, 0xa3, 0x08, 0x00, 0xab}; 

fprintf(serial_fd,  string); 

But only the three first bytes was send. If change the 0x00 for other value all data is sent. 

I think that the fprintf takes the 0x00 as a end of line.  How i can send the 0x00 value using fprint or fputs function?

0 项奖励
回复
1 解答
671 次查看
issekiamp
Contributor I

How about using write() function instead?

See section 2.3 and 2.9.4 of I/O Drivers User's Manual for more information.

在原帖中查看解决方案

0 项奖励
回复
3 回复数
671 次查看
soledad
NXP Employee
NXP Employee

Hello Jesus,

In fact if you are using "string" to send the information in the fprintf, you are going to loose the data of your array since the end of string is the NULL character which it is 0x00.

You need to send the byte to byte in a single loop to send all the data from the array


Have a great day,
Sol

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 项奖励
回复
672 次查看
issekiamp
Contributor I

How about using write() function instead?

See section 2.3 and 2.9.4 of I/O Drivers User's Manual for more information.

0 项奖励
回复
671 次查看
jesusayala
Contributor I

It works!

Thanks for your help.

:smileyhappy:

0 项奖励
回复