掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
COMポートを用いてのデータを送受信 (ID:50467)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
COMポート接続の機器からのデータ送受信をしたいと思ってます。 出力フォーマット(全10byte) 出力形態 シリアル(RS232C) 同期方式 調歩同期式 ボーレート 19200bps スタートビット、ストップビット 1bit データ 8bit パリティ 奇数パリティ 入力フォーマット(全1byte) COMMAND 1byte 01H リセット 02H データ出力要求 03H 周波数設定 となっています。 これをCreateFile()で通信リソースを開き、GetCommState()で取得したDCB 構造体にフォーマットを格納し設定します。 その後、WriteFile(),ReadFile()を使用してデータを送受信しているのですが、WriteFile()はうまくいっているようなのですが、ReadFile()はタイムアウトを設定しないと制御が戻ってもきません。 DCBの設定 dcb.BaudRate = 19200; dcb.ByteSize = 8; dcb.Parity = ODDPARITY; dcb.StopBits = ONESTOPBIT; データ出力要求 BYTE buff = 0x02; WriteFile(Handle,&buff,1,&NumWrite,NULL); 出力要求がうまくいかないと、データを吐き出さない仕様だとは思うので、 送信自体がおかしいのだと思っているのですが、お手上げの状態です。 おかしい場所、そもそもやり方が違うなどでも結構です。 何か解決の手掛りになるような方法をお教え下さい。 VC++ 6.0 WINDOWS XP 環境です。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.