c - 使用函数 CreateFile(..) 在 C 中打开串行 RS232 端口

标签 c windows

   HANDLE hPort = CreateFile(
    COM1,
    GENERIC_READ,
    0,
    NULL,
    OPEN_EXISTING,
    0,
    NULL
    );

当没有设备连接到 COM 端口时,此函数是否会返回一个值(除非为零)?

最佳答案

目前尚不清楚您实际上要问的问题是什么,但示例中的 CreateFile 调用只会因以下两个原因之一而失败:

  • 没有 COM1 设备。这可能是因为系统中没有物理串行端口,Windows 未能检测到它,或者 Windows 为其分配了不同的 COM 端口号。
  • COM1 设备已打开。 Windows 只允许串行设备打开一次。任何进一步打开该端口的尝试都将失败。

CreateFile失败时,它将返回INVALID_HANDLE_VALUE。调用不会失败,因为串行端口没有连接电缆或设备。 Windows只能检测串口本身是否存在,一般无法检测是否有东西连接到串口。

关于c - 使用函数 CreateFile(..) 在 C 中打开串行 RS232 端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26086256/

相关文章:

c - 如何返回一个字符串地址,然后将其分配给一个新的字符串?

c - C 中的帕斯卡三角形

c - 我们什么时候使用函数指针

windows - 使用环境变量识别 Cygwin、Linux、Windows

android - 音频无法在 Virtualbox 上运行的 Android 上运行?

linux - 如何定时从 Windows 发送文件到 Linux 服务器

c - 如何使用 printf() 以十六进制形式一一读取内存字节(因此没有任何格式)

windows - 为什么 Textpad 会询问您是否要使用 POSIX 正则表达式语法?

windows - cygwin 中的 vim 病原体错误

embedded - 如何通过在同一位置映射两个变量来重用物理内存?