掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
シリアル通信について (ID:60278)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
PCからPDAへシリアル通信(rs-232c)を使って送信するプログラムを作成しているのですが,PCからPDAに正しくテキストが送信されません. PCからPDAへ"12345"と最初に送信したときは, PDA側で"12345"と正しく出力されるのですが, その後に,"abc"と送ると,PDAのほうでは"abc45"と出力されてしまいます. 前に送信したデータが残っているらしいのです. PDAの受信プログラムはeMbedded Visual C++3.0 MFC ダイアログベースを 使っています.タイマー関数を使って,0.1秒毎にポートの状態を調べて(ClearCommError),もしバッファにデータがあれば,それを読み込む(ReadFile)というプログラムを作成しました.非同期で受信していて,ストップビットは1, パリティはなしです. PCの送信プログラムはフリーソフト(Acknowrich)を使用しています. 以下に作成したプログラムを記述しますので,誰かご教授願えればと思います. よろしくお願いいたします. //rdBuf は char rdBuf[516] = ""と宣言してあります. //以下の関数を0.1秒毎に実行する void CTest1Dlg::OnTimer(UINT nIDEvent) { ClearCommError(hComm, &dwErrors, &ComStat); //ポートの状態を取得 dwCount=ComStat.cbInQue; // 受信バッファのバイト数の取得 if(dwCount != 0 ){ ReadFile(hComm, rdBuf, dwCount , &dwRead, NULL); UpdateData(TRUE); m_b = rdBuf; PurgeComm(hComm , PURGE_RXABORT | PURGE_RXCLEAR ); UpdateData(FALSE); } }
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.