linux下串口收发的问题,下面一段代码,select返回的始终是0,程序处于阻塞状态,无法读到数据,在线等

linux下串口收发的问题,下面一段代码,select返回的始终是0,程序处于阻塞状态,无法读到数据,在线等,第1张

1. 确认是否成功打开的串口设备?

2. 确认打开串口后, 是否设置了波特率等一系列的参数?

3. 确认是否可成功写入?

4. 尝试使用poll 来代替select. 对于系统设备, 有时select不能正常工作而poll是可以的。

Linux内核中定义了以下几种状态

#define

TASK_RUNNING

0

#define

TASK_INTERRUPTIBLE

1

#define

TASK_UNINTERRUPTIBLE

2

#define

TASK_ZOMBIE

4

#define

TASK_STOPPED

8

其中:

TASK_RUNNING是就绪态,进程当前只等待CPU资源。

TASK_INTERRUPTIBLE和TASK_UNINTERRUPTIBLE都是阻塞态,进程当前正在等待除CPU外的其他系统资源;前者可以被信号唤醒,后者不可以。

TASK_ZOMBIE是僵尸态,进程已经结束运行,但是进程控制块尚未注销。

TASK_STOPPED是挂起状态,主要用于调试目的。进程接收到SIGSTOP信号后会进入该状态,在接收到SIGCONT后又会恢复运行。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存