VC Ver6.0で作成しています。
RS232Cの受信スレッドを生成し、その中でReadFile関数で受信していますが、
600バイトの受信は正常に出来るのですが、700バイト以上になると
全て受信できない状態になってしまいます。
例えば、800バイトの場合、280バイトしか受信していません。
エラーは、発生していません。
ちなみに、通信相手は、ターミナルソフトで行っています。
ボーレート、パリティ、等の設定は問題ありません。
ソフトのは下記の設定です。
CreateFile(strPort, GENERIC_READ | GENERIC_WRITE, 0, NULL,
OPEN_EXISTING, 0, NULL);
DCB dcb;
GetCommState(m_hComm, &dcb); // DCB を取得
dcb.BaudRate = 9600; // baudrate
dcb.ByteSize = 8; // バイトサイズ
dcb.Parity = NOPARITY; // パリティ(使用しない,他には
EVENPARITY,ODDPARITY)
dcb.fParity = FALSE; // パリティを使用するか
dcb.StopBits = ONESTOPBIT; // ストップビット
dcb.fOutxCtsFlow = FALSE; // 送信時に、CTS を監視するかどうかを
dcb.fOutxDsrFlow = FALSE; // 送信時に、DSR を監視するかどうかを
dcb.fDsrSensitivity = FALSE;// DSR がOFFの間は受信データを無視するか
SetCommState(m_hComm, &dcb); // DCB を設定
何か、考えられる原因がありますでしょうか?
宜しくお願いします。
たったそれだけのソースコードで何がわかるんぢゃゴラァと言いたい気がします。
読み込み部分がバグってるんぢゃないの?としか言いようがないですね。
あとは fAbortOnError が効いてしまって停止しているとか
SetupComm してないのでバッファが足らないとか
原因など山ほど考えられます。
ツイート | ![]() |