串行编程 - Termios。从设备读取0x00字节时卡住


威斯特
2025-03-12 11:05:05 (26天前)


我正在使用termios API来读取/写入串行接口中配置的设备。我正在使用的代码如下:

//打开串行接口
const char * device =“/ dev / ttyS0”;
int fd = …

2 条回复
  1. 0# 無口君 | 2019-08-31 10-32



    虽然

    O_NONBLOCK

    在开放时添加,

    fcntl(fd, F_SETFL, 0)

    在下面调用,相当于阻止模式。




    1. fd = open(device, O_RDWR | O_NOCTTY | O_NONBLOCK);
      fcntl(fd, F_SETFL, 0); // The O_NONBLOCK flag is overwritten

    2. </code>


    如果串口上没有数据,则会被阻塞。


登录 后才能参与评论