在线等,请教关于Linux串口读取GPS数据的问题!

在线等,请教关于Linux串口读取GPS数据的问题!,第1张

你的这个串口设备在打开(也就是调用open函数获取设备描述符)的时候设置的是非阻塞方式。导致串口上没数据的时候read也立即返回,但是你的while已经把有效的数据读走了,if里面读到的一定是空的,所以什么也不打印。

建议

1. 在打开串口设备时使用阻塞方式,不会设置的话查查open系统调用的帮助,它有个flag;

2. 把while循环内的if语句去掉。

1.代码没贴全,main之外呢?

2.openport的函数我不太清楚,认为基本和你注释掉的open函数功能相同.那么openport的第一个参数fd的值是否正确?

3.fcntl(fd, F_SETFL, 0),为什么还要去设置参数为0,openport时应该已经设置了参数吧.

4.上面是打开端口的问题,后面应该是读数据了.如果仍然没有数据的话,先看看读取函数的返回值,不能解决的话你可以考虑换一个端口试试.

晕,被win的思想影响了吧,linux的gps驱动内核源码里,(linux除了显卡驱动要另装,另装的也不是内核驱动,而是供xorg调用的库,真正的驱动仍是在编译内核时编译了,linux所有驱动都在内核源码里)你可以自己编译需要的gps驱动模块,然后用modprobe 加载


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7271813.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存