8

我正在使用需要通过串行通信的外围设备。我可以使用超级终端向它发送命令,但现在我需要编写程序让我在没有超级终端的情况下执行此操作。有人可以将我指向一个网站和/或向我展示一个示例 hello world 程序来帮助我入门吗?我搜索了许多网站,这些网站给了我不可编译的/古老的 VC6 代码。

4

5 回答 5

6

为了与串行端口连接,您打开一个具有特殊文件名“COM1”到“COM9”之一的文件。对于编号较大的串口,特殊文件名以\\?\开头,在C/C++代码中必须转义为“\\\\?\\COM10”等。

http://msdn.microsoft.com/en-us/library/ms810467.aspx有一个关于使用串口的非常好的教程。请注意,您应该使用 Windows 文件 I/O 函数,例如CreateFile()ReadFile()WriteFile(). 我不确定是否可以使用标准 I/O 函数,例如fopen()fread()fwrite().

于 2008-10-26T03:41:18.740 回答
4

Microsoft 提供了一篇文章,其中包含描述如何在 Win32 下执行此操作的示例代码。

于 2008-10-26T03:47:04.970 回答
1

提升:asio可能会提供帮助,因为最近添加了串行设备。

公平的警告;串口文档很,大概是因为它很新(它是在 asio 1.1.1 中添加的,它包含在 boost 1.36 中)。

但是,恕我直言,通过 asio 工作是比使用原始 Win32 API 更好的解决方案。为什么?它将更易于阅读和维护(它是更高级别的 API),并且它是跨平台的(除非您需要指定特定于操作系统的设备名称)。

Boost - 用户和asio.user邮件列表非常活跃和友好,如果您遇到困难应该能够帮助您。

于 2008-10-26T05:46:22.467 回答
1

如果使用 .NET 2.0,请参阅 System.IO.Ports,这篇文章应该会有所帮助。如果直接Win32,那么亚当的答案是最好的。

于 2009-01-13T11:46:55.463 回答
0

如果您发现 VC6 太古老,我相信您也会发现大量 C# 示例代码。我认为还有一堆“免费”的串行/COM 端口包装器,但我只是在编写 RS232 设备控制器软件时自己编写的。

谷歌 C# 和串口或 rs232

我得到了这些:

http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx

http://msmvps.com/blogs/coad/archive/2005/03/23/SerialPort-_2800_RS_2D00_232-Serial-COM-Port_2900_-in-C_2300_-.NET.aspx

使用谷歌搜索找到合适的代码应该没有问题。

于 2008-10-26T03:51:51.480 回答