当前位置: 技术问答>linux和unix
用LINUX串口发送数字和字符串遇到问题
来源: 互联网 发布时间:2016-01-29
本文导语: 我用LINUX串口发送字符串STX,WRITE(FD,“STX”,3);收到的结果16进制显示53 54 58,我要的结果是把STX当整体而不是分别收到S T X的ASCII码值。有身莫办法呢? 另外,我用WRITE函数发送字符就对,发送数字就不对,...
我用LINUX串口发送字符串STX,WRITE(FD,“STX”,3);收到的结果16进制显示53 54 58,我要的结果是把STX当整体而不是分别收到S T X的ASCII码值。有身莫办法呢?
另外,我用WRITE函数发送字符就对,发送数字就不对,例如:INT A=55;WRITE(FD,A,SIZEOF(A) );请问要发送数字该怎样写呢?
另外,我用WRITE函数发送字符就对,发送数字就不对,例如:INT A=55;WRITE(FD,A,SIZEOF(A) );请问要发送数字该怎样写呢?
|
串口串口,就是串行传送数据的,根据发送顺序,一次发送出去一个字节,接收端一次接收一个字节,该怎么处理
是你应用程序的事情,
就象你的例子,你把接收到的3个字节分别放入字符数组的3位里,用%s输出不就是你发送的字符串"STX"啦?
不是发送数字不对,是你读到后解释不对,上面不是说啦,串口一次读写一个字节即0-255,你超过了这个值,它就
没法发送,你要根据你的发送和接收指定一个规程.
是你应用程序的事情,
就象你的例子,你把接收到的3个字节分别放入字符数组的3位里,用%s输出不就是你发送的字符串"STX"啦?
不是发送数字不对,是你读到后解释不对,上面不是说啦,串口一次读写一个字节即0-255,你超过了这个值,它就
没法发送,你要根据你的发送和接收指定一个规程.
|
第二个问题:
你应该字符串的形式发char *A="55"
你应该字符串的形式发char *A="55"
|
第一个问题:
#define STX 'x05'
...
write(fd, STX, 1);
...
#define STX 'x05'
...
write(fd, STX, 1);
...