掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
RS232Cで数字と文字の送信をするには? (ID:54370)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
RS232Cで数字と文字の混合を送信するにはどうすればよろしいでしょうか? 012tom02 というのを送るとして 「01」と「02」は数字で 「2tom」は文字列というのを送信したいのですが、 これをバイナリエディタで作成しテキストファイルとして保存し、 ハイパーターミナルで送信すると受信されるのですが、 作成したプログラムで行うとうまくできません。 (プログラムではファイル送信ではなく。数字と文字の送信を行いたい) どなたかアドバイスお願いします。 下記にソースを載せます。 <--ここから--> void Cidt3Dlg::OnBnClickedRadio1() { // TODO : ここにコントロール通知ハンドラ コードを追加します。 HANDLE iComm; iComm = CreateFile(9600, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if(iComm == INVALID_HANDLE_VALUE) { // エラー処理 } DCB dcb; GetCommState(iComm, &dcb); /* DCB を取得 */ dcb.BaudRate = 9600; dcb.ByteSize = 8; dcb.Parity = NOPARITY; dcb.fParity = FALSE; dcb.StopBits = ONESTOPBIT; SetCommState(iComm, &dcb); /* DCB を設定 */ char* pszBuf1; /* 書き込みデータバッファ */ int test,test1; DWORD dwWritten; /* ポートへ書き込んだバイト数 */ test = 01; pszBuf1 ="2tom"; test1 = 02; //pszBuf = reinterpret_cast<char *>(bright); //intからcharに変換 WriteFile(iComm, &test, sizeof(int), &dwWritten, NULL); WriteFile(iComm, pszBuf1, strlen(pszBuf1), &dwWritten, NULL); WriteFile(iComm, &test1, sizeof(int), &dwWritten, NULL); COMMTIMEOUTS TimeOuts;//timeout TimeOuts.ReadIntervalTimeout = MAXWORD; TimeOuts.ReadTotalTimeoutMultiplier = 500; TimeOuts.ReadTotalTimeoutConstant = 10; TimeOuts.WriteTotalTimeoutMultiplier = 500; TimeOuts.WriteTotalTimeoutConstant = 10; SetCommTimeouts(iComm, &TimeOuts); CloseHandle(iComm); } <--ここまで-->
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.