3

シリアルポートで動作するLEDディスプレイにデータを送信しようとしています。このコードはVB6で機能しますが、C#に変換する必要がありました。悲しいことに、それは機能しません。何か案は?

VB6(例)

MSComm1.CommPort = 1

MSComm1.Settings = "9600,N,8,1"

MSComm1.PortOpen = True

MSComm1.Output = Chr(170)

MSComm1.Output = Chr(2)

C#(例)

var serialPort1 = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);

serialPort1.Open();

serialPort1.Write(((char)170).ToString());

serialPort1.Write(((char)2).ToString());

serialPort1.Close();

問題はserialPort1.Write関数にあると思いますが、理解できませんでした。手伝ってもらえますか?

4

2 に答える 2

2

C#でMSCommクラスを使用する際の問題を解決しました。すべての助けのためにみんなをタイします:)

于 2012-07-23T13:28:28.100 に答える
1

また、serialPortクラスでそれを行う方法を理解しました。重要な取引は、「var serialPort1 = new SerialPort( "COM1"、9600、Parity.None、8、StopBits.One);」を使用した手動定義の代わりに、デザイナーを使用してserialPort1定義を追加することです。私の問題は、私が推測する定義が欠落しているために発生しました。これがサンプルです:

Byte[] _bytesToSend = new Byte[7];
_bytesToSend[0] = 170;
_bytesToSend[1] = 2;
serialPort1.Open();
serialPort1.Write(_bytesToSend, 0, _bytesToSend.Length);
serialPort1.Close();
于 2012-08-17T06:06:26.600 に答える