在Windows系统中,串口输入缓冲区有多大?

5

我查阅了MSDN和互联网,但是没有找到明确的答案。在Win32 API中,串行通信的输入缓冲区大小是多少(以字节为单位)?


MSDN关于串口的文章描述了可选的硬件缓冲区(https://msdn.microsoft.com/en-us/library/ff802693.aspx),但没有详细说明,这让我认为输入缓冲区是在硬件上(可能是UART的一部分),因此不是操作系统的责任,并且您需要一个硬件特定的驱动程序来查询设备的缓冲区统计信息。 - Dai
2
你可以使用SetupComm()来指定自定义缓冲区大小,但驱动程序不一定会遵守它们:“设备驱动程序接收推荐的缓冲区大小,但可以自由使用任何输入和输出(I/O)缓冲方案,只要它提供合理的性能并且数据不会因溢出而丢失(除非在极端情况下)。例如,即使驱动程序没有分配缓冲区,该函数也可以成功,只要系统的其他部分提供等效功能即可。 - Remy Lebeau
@RemyLebeau,谢谢你的信息。这意味着输入缓冲区可以是任何大小,对吗?如果您将您的评论重写为答案,我会很乐意接受它。 - Eric Dand
1个回答

0

我不确定所有版本的Windows是否有通用默认大小,但我的研究确定您可以调用GetCommProperties()来查找传输和接收缓冲区的当前大小。我自己还没有尝试过,但我打算在目前编写的Windows版本上使用它来查找默认大小。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接