我正在使用需要通过串行通信的外围设备。我可以使用HyperTerminal发送命令,但现在我需要编写程序,让我在没有HyperTerminal的情况下完成它。有人能指点我到一个网站和/或给我看一个示例你好世界计划让我开始吗?我搜索了许多网站,这些网站给我提供了无法编译/古老的VC6代码。
答案 0 :(得分: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()
。
答案 1 :(得分:4)
Microsoft提供an article with sample code描述如何在Win32下执行此操作。
答案 2 :(得分:1)
Boost:asio可能会在最近添加串行设备时提供帮助。
虽然公平警告;串口文档是 light ,大概是因为它很新(它是在asio 1.1.1中添加的,它包含在boost 1.36中)。
但是,通过asio工作是恕我直言,比使用原始Win32 API更好的解决方案。为什么?它将更容易阅读和维护(它是更高级别的API),它将是跨平台的(除非您需要指定特定于操作系统的设备名称)。
Boost - Users和asio.user邮件列表非常活跃且友好,如果您遇到问题,应该能够帮助您。
答案 3 :(得分:1)
如果使用.NET 2.0,请参阅System.IO.Ports和this article应该会有所帮助。如果是直接Win32,那么Adam's answer是最好的。
答案 4 :(得分:0)
我相信你会发现很多C#的示例代码,如果你发现VC6太古老了。我认为还有一堆“免费”的串口/ COM端口包装器,但是当我编写RS232设备控制器软件时,我只是写了自己的。
谷歌C#和串口或rs232
我得到了这些:
http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx
使用Google搜索找到合适的代码应该没问题。