我的问题是关于 <termios.h>
.据我了解,在通过 UART 读取内容时存在两个缓冲区 - 一个存储接收到的字节的硬件缓冲区,以及一个我们加载已存储在硬件缓冲区中的内容的软件缓冲区。此软件缓冲区是 read(uart_channel, BUFFER, length)
中的第二个参数据我了解。
请解释:硬件缓冲区有多长?我可以控制它的时长吗?对我而言,读取设备通过 UART 发送的 12 个最新字节 至关重要 - 如何确保这一点?
最佳答案
我曾经遇到过类似的情况,我所做的是创建一个线程来持续读取 UART(阻塞 read
),并且我在线程之间使用了一个 FIFO。
如果您不能使用线程,您可能只使用select
。
关于c - linux 中的串行缓冲区有多长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30463040/