3

我刚刚完成了一个用 C 编写的小项目,我从串口读取数据流并解析传入的数据。该软件是为 POSIX 系统(使用 termios)编写的,并遵循使用串行 i/o 的标准步骤

  1. 使用 open() 打开串口设备
  2. 配置通信参数 (termios)
  3. 在文件句柄 (fcntl) 上设置阻塞模式
  4. 在串行接口上​​执行 read()。
  5. 完成后在串行接口上​​执行 close()。

除了插座部分,代码是直接的 ANSI C。

我的问题是,使代码在 Windows 平台上工作的参与程度如何。移植不是由我编写的,我只想向可能对移植它感兴趣的其他人提供一个指示(即微不足道,不是那么微不足道,把你的眼睛挖出来导致精神错乱)。

此外,如果有人拥有带有“UNIX 的 Windows 服务”的 Windows,他们是否能够在不修改代码的情况下使用该代码?

所以,如果有人有这方面的经验,请分享一下。

4

1 回答 1

3

这应该很容易做到。名称非常不同,但调用顺序和概念非常相似。

您正在寻找的是DCB结构,它应该与SetComState()函数一起使用来设置波特率、停止位等。然后使用SetCommTimeouts()并在COMMTIMEOUTS结构中设置超时值以使后续读取调用阻塞。

这是一个漂亮的 PDF的简短介绍。备份。)

于 2012-02-08T13:25:10.273 回答