【问题标题】:Is it possible to query serial port tx pin status (signal low / high) in windows?是否可以在 windows 中查询串口 tx 引脚状态(信号低/高)?
【发布时间】:2013-06-05 09:20:11
【问题描述】:

是否可以查询串行端口 tx(发送)引脚状态是否处于活动状态?

例如,当发出中断命令 (SetCommBreak) tx 引脚设置为有效(低)时。我想知道它什么时候激活。谢谢。

【问题讨论】:

    标签: windows serial-port uart


    【解决方案1】:

    没有。 (至少不可能)

    如果您使用的是“16550”系列UART,那么我相信您无法查询串口tx pin状态。当然,如果您使用的是一些新版本或其他 UART 系列,也许可以。

    您可以假设在执行SetCommBreak() 时,TX 引脚处于 SPACE 状态('0',+Volts),但我怀疑这对您来说还不够。


    如果您希望调试您的代码以了解是否发生中断,您可以将 9 针 D-sub 上的针 2 和 3 短接,从而将发送回送至接收。一个回形针就可以了。您的接收代码会检测到传入的 BREAK。短路到不正确的引脚不会导致符合串行端口的持久问题,但要小心。在测试 BREAK 条件之前,先用简单的数据尝试一下。


    如果你有一个类似“16550”的UART。

    您可以将 UART 置于环回模式,看看您是否接收到您自己的传出 BREAK 信号。它在当前的 PC 中有些复杂。其他 UART 类型可能支持环回。

    【讨论】:

    • 感谢您提供非常好的答案。是的,我确实有带 16550 UART 的普通 PC。我想知道例如实时程序如何知道如何打开 TX 和 RX 引脚状态。但现在我知道它必须在程序中完成。它的工作原理可能是这样的:在读取期间打开 RX 指示器,并在写入时发送 TX。它还可以检测“中断条件”或“空间状态”。
    • “你可以短引脚......因此循环支持” -- 嗯,你正在寻找的动词是“循环回来”。 “短路到不正确的引脚不会导致持久问题” -- 这是 EIA/RS232 收发器驱动芯片的要求,但不是逻辑级 UART/USART 设备的要求。顺便说一句 - 大多数 UART/USART 检测然后在状态寄存器中报告中断条件。通常,此状态寄存器中的更改(例如,已检测到中断或调制解调器控制信号已更改)被配置/用于生成中断。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 2014-01-07
    • 1970-01-01
    相关资源
    最近更新 更多