|
投稿した直後に過去のログを見て以下のように変更したところ、動作するようになりました。 お騒がせいたしました。
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) {
// 受信処理
byte[] resData = new byte[8]; int rcv_cnt = 0;
while(rcv_cnt < 8){ if(serialPort1.BytesToRead > 0){ serialPort1.Read(resData, rcv_cnt, 1); rcv_cnt++; } }
■No19466 (NERO さん) に返信 > PICマイコンから8バイトのキャラクタデータを受信するプログラムがうまく動作しません。 > データ受信1回目のデータは正しく読めるのですが、2回目のデータが入ってきたとき、データの内容が変化せず、 > 1回目と同じ内容のデータです。ところが途中で、メッセージボックスに"TEST"と表示させるとうまく動作します。 > 1回目のイベントが正しく終了していないようにも思えるのですが、よくわかりません。どなたかおわかりになりますか。 > > private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) > { > > MessageBox.Show(Convert.ToString("test")); //<---この行を書くとなぜか動作する? > > char[] resData = new char[8]; > > serialPort1.Read(resData, 0, 8);//シリアルポートから8charを読み、resData[]に格納 > >
|