日期:2014-05-16  浏览次数:20627 次

用LINUX串口发送数字和字符串遇到问题
我用LINUX串口发送字符串STX,WRITE(FD,“STX”,3);收到的结果16进制显示53   54   58,我要的结果是把STX当整体而不是分别收到S   T   X的ASCII码值。有身莫办法呢?


另外,我用WRITE函数发送字符就对,发送数字就不对,例如:INT   A=55;WRITE(FD,A,SIZEOF(A)   );请问要发送数字该怎样写呢?

------解决方案--------------------
串口串口,就是串行传送数据的,根据发送顺序,一次发送出去一个字节,接收端一次接收一个字节,该怎么处理
是你应用程序的事情,
就象你的例子,你把接收到的3个字节分别放入字符数组的3位里,用%s输出不就是你发送的字符串 "STX "啦?
不是发送数字不对,是你读到后解释不对,上面不是说啦,串口一次读写一个字节即0-255,你超过了这个值,它就
没法发送,你要根据你的发送和接收指定一个规程.
------解决方案--------------------
第二个问题:
你应该字符串的形式发char *A= "55 "

------解决方案--------------------
第一个问题:
#define STX '\0x05 '
...
write(fd, STX, 1);
...