マイクロコントローラーから RS232 DE9 シリアルポートに受信したデータを読み取るための単純な winform アプリケーションを作成しました。データを送信するタイミングを制御する必要があるため、そのために RtsEnable プロパティを制御します。プログラムの構造は、このようなものに似ています。
byte[] data = new byte[serialPort1.BytesToRead];
serialport1.RtsEnable = true;
private void serialPort1_DataReceived(object sender,
System.IO.Ports.SerialDataReceivedEventArgs e)
{
serialPort1.Read(data, 0, data.Length);
serialport1.RtsEnable = false;
this.Invoke(new EventHandler(ProcessData));
serialport1.RtsEnable = true;
}
さて、問題は簡単です。RtsEnable が最初に true に設定されている場合、実際には true に設定されていません。確かにデバッグすると、RtsEnable = true と表示されます。しかし、回路の電圧を確認すると、RT はまだ高くありません。
シリアルポートの電圧出力を手動で確認したので、回路に問題はないと思います。だから、それは私のコードで何かをしなければならないと思います。
これがなぜなのかについて何か考えはありますか?前もって感謝します