Unix串口有一个大的输出缓冲区。只要缓冲区中有空间,写入调用就会立即返回。当没有足够的空间时,阻塞写入将等待直到缓冲区被清空到某个较低级别。
在Windows 7 SP1中,内置的16550串口似乎没有输出缓冲区。写入似乎会阻塞,直到数据从端口输出。如果有缓冲区,则缓冲区甚至比设备管理器(COM1的高级设置)中设置的16字节还要小。SetupComm函数允许我指定推荐的输入和输出缓冲区大小。但是,输出缓冲区大小似乎不会改变任何行为,并且GetCommProperties始终将dwCurrentTxQueue字段设置为零。SetupComm唯一能做的就是增加输入缓冲区的大小。
在Windows 7 SP1中,内置的16550串口似乎没有输出缓冲区。写入似乎会阻塞,直到数据从端口输出。如果有缓冲区,则缓冲区甚至比设备管理器(COM1的高级设置)中设置的16字节还要小。SetupComm函数允许我指定推荐的输入和输出缓冲区大小。但是,输出缓冲区大小似乎不会改变任何行为,并且GetCommProperties始终将dwCurrentTxQueue字段设置为零。SetupComm唯一能做的就是增加输入缓冲区的大小。