【问题标题】:Does Windows support software flow control?Windows 是否支持软件流控制?
【发布时间】:2012-01-28 00:27:46
【问题描述】:

我刚刚看到一篇有趣的 MSDN 文章,它让我相信不支持软件流控制:http://msdn.microsoft.com/en-us/library/ff802693.aspx

引用相关段落:

fBinary:指定是否启用二进制模式。 Windows API 不支持非二进制模式传输,因此该成员应为 TRUE。尝试使用 FALSE 将不起作用。

由于软件流控使用两个特殊字符XOFF和XON,二进制传输不能使用软件流控; XON 或 XOFF 字符可能出现在二进制数据中,会干扰数据传输。

这是否意味着 Windows 不再支持软件流控制?有过吗?

【问题讨论】:

    标签: winapi serial-port


    【解决方案1】:

    我可以看到可能的混淆,但不,这不是它的意思。 DCB.fBinary 仅仅意味着驱动程序本身根本不会改变应用程序发送的数据。 *二进制传输”谈论应用程序通过端口发送的数据的种类。比如说当你传输一个文件时。如果你发送一个 EXE 文件,那么文件数据不可避免地包含一个字节匹配 XON 或 XOFF 的值。如果设备使用 Xon/Xoff 握手,这将无法正常工作,它会将该字节误解为握手字符。

    Xon/Xoff 握手没有问题,您只需确保您发送的数据本身不包含 Ctrl+Q 和 Ctrl+S。喜欢文字。与二进制传输相反。

    【讨论】:

    • 好的,我有一个后续问题。看看DCB.fBinary 一定是真的,DCP.EofChar 曾经使用过吗?我看到论坛帖子表明当DCB.fBinary 为真时DCP.EofChar 被忽略,但规范并未指明一种或另一种方式。有什么想法吗?
    • 我已经看到它造成了麻烦,所以我知道它至少由一个驱动程序实现。你最好让它保持为零。
    • 好的,所以零表示禁用?所有char 属性都是这样吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    • 2019-03-03
    • 2020-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多