8

シリアル通信が必要な周辺機器を使用しています。HyperTerminal を使用してコマンドを送信できますが、HyperTerminal を使用せずにコマンドを送信できるプログラムを作成する必要があります。だれかウェブサイトを教えてくれたり、Hello World プログラムのサンプルを見せてくれたりしてくれませんか? コンパイルできない/古いVC6コードを提供する多くのサイトを検索しました。

4

5 に答える 5

6

シリアル ポートとインターフェイスするには、"COM1" から "COM9" までの特別なファイル名のいずれかを持つファイルを開きます。番号が大きいシリアル ポートの場合、特別なファイル名は \\?\ で始まります。これは、C/C++ コードでは "\\\\?\\COM10" などのようにエスケープする必要があります。

http://msdn.microsoft.com/en-us/library/ms810467.aspxには、シリアル ポートの使用に関する非常に優れたチュートリアルがあります。CreateFile()ReadFile()、などの Windows ファイル I/O 関数を使用する必要があることに注意してくださいWriteFile()fopen()fread()、などの標準 I/O 機能を使用して機能するかどうかはわかりませんfwrite()

于 2008-10-26T03:41:18.740 に答える
4

Microsoft は、 Win32 でこれを行う方法を説明するサンプル コードを含む記事を提供しています。

于 2008-10-26T03:47:04.970 に答える
1

.NET 2.0 を使用している場合は、System.IO.Ports を参照してください。この記事が役立つはずです。Win32 に直接接続する場合は、Adam の回答が最適です。

于 2009-01-13T11:46:55.463 に答える
1

最近シリアルデバイスが追加されたので、Boost:asioが役立つかもしれません。

ただし、公正な警告です。シリアルポートのドキュメントは、おそらく非常に新しいため、軽いです(boost 1.36に含まれるasio 1.1.1に追加されました)。

しかし、生のWin32 APIを使用するよりも、asioを介して作業する方が良い解決策です。なんで?読み取りと保守が容易になり (より高いレベルの API)、クロスプラットフォームになります (OS 固有のデバイス名を指定する必要がある場合を除く)。

The Boost - Usersおよびasio.userメーリング リストは非常に活発で友好的で、行き詰まった場合に役立つはずです。

于 2008-10-26T05:46:22.467 に答える
0

VC6 が古すぎると思われる場合は、C# のサンプル コードもたくさん見つかると思います。「無料」のシリアル/COM ポート ラッパーもたくさんあると思いますが、RS232 デバイス コントローラーのソフトウェアを作成したときに独自のラッパーを作成しました。

Google 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

Google 検索で適切なコードを見つけるのに問題はないはずです。

于 2008-10-26T03:51:51.480 に答える