gpt4 book ai didi

c++ - 从串口读取恰好 N 个字节

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:04:01 32 4
gpt4 key购买 nike

如何从串口准确读取N字节?我需要我的线程阻塞,直到至少 N 字节在端口上可用或预设超时已过期。超时值和 N 都应该在运行时可变。

注意:在 Linux 上使用 C/C++,带或不带 boost。

最佳答案

termios 中有 VMIN 属性用于此目的。它可用于防止 read() 在没有足够字节可用时返回。

例子:

tcgetattr( fd, &termiosv );

termiosv.c_cc[VMIN] = N;
termiosv.c_cc[VTIME] = 20;

tcsetattr( fd, TCSANOW, &termiosv );

More about VMIN .

注意:它对 select() 有影响:当只有 1 个字节可用且 VMIN > 1 时,Select 指示 fd 可读性。

关于c++ - 从串口读取恰好 N 个字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13930589/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com