串口发送10时多个0D?

 

是因为Window和Linux的回车编码不一样,Windows的回车换行编码是0x0d 0x0a两个字节,而Linux的编码只有一个字节0x0a,所以在Linux发0x0a出去到Windows下接收就会变成0x0d 0x0a,这个应该是串口的参数设置问题,网上有C写的串口操作程序就可以设置,以下是我在网上看到的:

“在我们发送字符0x0d的时候,往往接受端得到的字符是0x0a 这是怎么回事,原因是在串口设置中c_iflag和c_oflag中存在 从NL-CR 和CR-NL的映射,也就是说,串口可以把回车和换行看成一个字符,所以,此时我们应该屏蔽掉这些,用options.c_oflag &=~(INLCR|IGNCR|ICRNL|);和options.c_oflag &=~(ONLCR|OCRNL);进行设置”

你可能感兴趣的:(串口发送10时多个0D?)