C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: serialPort1.Read


(過去ログ 37 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■19466 / inTopicNo.1)  serialPort1.Read
  
□投稿者/ NERO (1回)-(2008/05/23(Fri) 14:22:41)

分類:[.NET 全般] 

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[]に格納


引用返信 編集キー/
■19469 / inTopicNo.2)  Re[1]: serialPort1.Read
□投稿者/ NERO (2回)-(2008/05/23(Fri) 14:37:06)
投稿した直後に過去のログを見て以下のように変更したところ、動作するようになりました。
お騒がせいたしました。


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[]に格納
>
>
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -