Linux中串口read怎样阻塞的方式读入数据

Linux中串口read怎样阻塞的方式读入数据,第1张

Linux中串口read怎样阻塞的方式读入数据C/C++ code

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

pthread_mutex_lock(&ptty->mt)

ret = read(ptty->fd, pbuf, 1) //由于read并不阻塞 要监听随时可能来数据的串口 得不停的循环的查看 效率好低

if(ret <0)

{

//串口没有数据进来

}

else

{

//相关处理

}

/*

怎样加以控制使得,或使用什么函数

readfunction(ptty->fd, pbuf, ......)//使得这儿没有串口数据时阻塞,有串口数据了就读到

//避免不停的循环+sleep() 耗费ARM板资源,而且有时还漏读

//有的说用什么fcntl,ioctl 这两不太懂,希望可以解释清楚点

*/

pthread_mutex_unlock(&ptty->mt)

open返回文件描述符为0是open成功的,这个没影响。在read那里阻塞是神马情况呢?read也有返回值的,那个返回值是多少?还有,在read后面调用个perror函数看看错误是个什么。


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

原文地址: http://outofmemory.cn/yw/7103527.html

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

发表评论

登录后才能评论

评论列表(0条)

保存