之前一直都是使用Qt库进行串口进行编程,由于项目需要只能使用linux C库上面的串口编程。网上也挺多例子的,就是在接收数据0x0d的数据上面老是把它替代成为了0x0a。
其实0x0d对linux系统来说是有特殊含义,并非window上面的含义,一般window换行是0x0d 0x0a,而Linux则是 0x0a。
所以在配置串口时候要取消对某些字符进行处理才可以正常接收数据。
//清bit位 关闭字符映射
0x0a 0x0d opt.c_iflag &= ~(INLCR|ICRNL);
//清bit位 关闭流控字符
0x11 0x13 opt.c_iflag &= ~(IXON);
参考:https://blog.csdn.net/love_gaohz/article/details/415105
http://www.cnblogs.com/zgq0/p/8078505.html