winapi - RS232(Com 端口)RTS/CTS/DTR/DSR 的低级控制可能吗?

标签 winapi embedded serial-port handshaking

我想知道是否以及如何可以直接从 win32(旧的 C-API)控制 RS-232 握手线。

我想与外部硬件连接,两条简单的数据线就足以满足我的需求。

那么 - win32 是否有一个 API 可以让我读取和写入四个状态行的状态?在正常串行通信中,握手线由 UART 自动驱动(如果启用了硬件握手)。

我记得在DOS下这是微不足道的。只需直接对 UART 进行编程即可。这个功能在 win32 中是否还存在?

最佳答案

您可以使用SetCommState()控制RTS和DTR。您还可以进行设置,让硬件或驱动程序处理硬件流控制(CTS 和/或 DSR),或者您可以使用 SetCommMask() 进行设置,以便在这些信号发生变化时收到事件。

这里有一个不错的概述:http://msdn.microsoft.com/en-us/library/ms810467.aspx

请注意,Win32 串行通信 API 和/或驱动程序可能很挑剔,因此请准备好对线路上发生的情况进行一些调试。

关于winapi - RS232(Com 端口)RTS/CTS/DTR/DSR 的低级控制可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/820817/

相关文章:

embedded - 虚拟 COM 通信问题

c++ - WinAPI:如何在自定义编辑控件中处理键盘输入

c++ - Qt 需要将 Qt 应用程序带到前台,从 win32 应用程序调用

c - 如何在PowerPC架构中 "invalidate"或 "flush"范围内的CPU缓存?

java - 服务发现失败 - 使用 SPP 的蓝牙聊天连接

python - 字符串作为具有多处理访问的发送缓冲区

node.js - NodeJS 和 node-serialport 我在编写时遇到问题

delphi - 使用 EXE 而不是 DLL 作为插件 - "one way, one time"传输信息的方法

c++ - 如何检查进程是否启用了 ASLR?

c - 夹板示例 rc 文件