1、打开设备文件(/dev/ttyUSB0)后关闭,无法再次打开,需要将设备进行拔插才能恢复
打开方式是阻塞打开,fp = open(tty_path,O_RDWR|O_NOCTTY|O_NONBLOCK);
不知到具体原因,但是这样写会使open函数无法结束,可以先以非阻塞的方式打开,再使用fcntl函数改成阻塞:
open(tty_path,O_RDWR|O_NOCTTY|O_NDELAY);
fcntl(fp,F_SETFL,0)
2、write 16进制数据0A,接收到的却是0D 0A
更改串口输出配置:tms.c_oflag &= ~OPOST;
详细的参数配置含义可以参考:Linux串口编程_opost-优快云博客
3、另外不建议在tcgetattr(fd, &tms);执行后直接在tms上进行更改,这样的代码可移植性比较低,因为不能够确定的是不同设备下的配置是一致的