掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
RS232Cについて (ID:12752)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
DELPHI5にてRS232Cのプログラムを作成しているのですが、 受信がうまくできません。 ソースを開示しますので、不具合箇所を教えてください //OPEN ghHandle := CreateFile('COM1', GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, 0, 0); if (ghHandle = -1) then begin ShowMessage('COM1のオープンに失敗しました'); end; if (False = GetCommState(ghHandle, gstrDCB)) then begin ShowMessage('通信設定取得に失敗しました'); CloseHandle(ghHandle); ghHandle := 0; end; gstrDCB.BaudRate := 9600; gstrDCB.ByteSize := 8; gstrDCB.Flags := $3001; gstrDCB.Parity := NOPARITY; gstrDCB.StopBits := ONESTOPBIT; if (False = SetCommState(ghHandle, gstrDCB)) then begin ShowMessage('通信設定に失敗しました'); CloseHandle(ghHandle); ghHandle := 0; end; gstrCTO.ReadIntervalTimeout := 500; gstrCTO.ReadTotalTimeoutMultiplier := 0; gstrCTO.ReadTotalTimeoutConstant := 3000; gstrCTO.WriteTotalTimeoutMultiplier := 0; gstrCTO.WriteTotalTimeoutConstant := 500; if (False = SetCommTimeouts(ghHandle, gstrCTO)) then begin ShowMessage('タイムアウト設定に失敗しました'); CloseHandle(ghHandle); ghHandle := 0; end; pszSend[0] := $FF; pszSend[1] := $FF; pszSend[2] := $49; pszSend[3] := $40; pszSend[4] := $80; pszSend[5] := $01; pszSend[6] := $23; pszSend[7] := $0F; pszSend[8] := $81; pszSend[9] := $13; pszSend[10] := $F0; pszSend[11] := $81; pszSend[12] := $05; pszSend[13] := $00; pszSend[14] := $00; pszSend[15] := $04; // 送信 if (False = WriteFile(ghHandle, pszSend, 16, inWByte, nil)) then begin ShowMessage('送信に失敗しました'); end; ※戻り値はTRUEだが受信は0バイトになっている if (False = ReadFile(ghHandle, pszRecv, inRByte, inRByte2, nil)) then begin ShowMessage('受信に失敗しました'); end; よろしくお願いいたします
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.