
2.openport的函数我不太清楚,认为基本和你注释掉的open函数功能相同.那么openport的第一个参数fd的值是否正确?
3.fcntl(fd, F_SETFL, 0),为什么还要去设置参数为0,openport时应该已经设置了参数吧.
4.上面是打开端口的问题,后面应该是读数据了.如果仍然没有数据的话,先看看读取函数的返回值,不能解决的话你可以考虑换一个端口试试.
你的这个串口设备在打开(也就是调用open函数获取设备描述符)的时候设置的是非阻塞方式。导致串口上没数据的时候read也立即返回,但是你的while已经把有效的数据读走了,if里面读到的一定是空的,所以什么也不打印。建议
1. 在打开串口设备时使用阻塞方式,不会设置的话查查open系统调用的帮助,它有个flag;
2. 把while循环内的if语句去掉。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)