掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
シリアル通信をするには? (ID:56501)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
助言有難うございます。おかげでコンパイル成功しました。 ですが新たにデバッグで上手くいかなかったため期待通りの結果を残すことが出来ませんでした。予定では入出力が可能となると思っていたのですがこれでは無理があるのでしょうか? ソースは以下の通りです。ヘッダファイルは ここか頂いたものを使用しています。http://www.vector.co.jp/soft/win95/prog/se224900.html 何か問題がありましたら指摘をお願いします。 #include <Windows.h> #include <stdio.h> #include <stdlib.h> #include <erslib.h> int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { HANDLE hComm; BYTE bSendBuffer[256]; DWORD dwSendSize; DCB dcb; COMMTIMEOUTS Timeout; BOOL Ret; int n; //ポートの初期化 hComm = CreateFile("com", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if(hComm == INVALID_HANDLE_VALUE) { //エラー処理 //必要なら GetLastError() をチェックする。 printf("Port could not open.\n"); exit(0); } //送受信バッファ初期化 Ret = SetupComm(hComm, 4096, 4096); if(Ret == FALSE) { printf("SetupComm failed.\n"); CloseHandle(hComm); exit(0); } Ret = PurgeComm(hComm, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR); if(Ret == FALSE) { printf("PurgeComm failed.\n"); CloseHandle(hComm); exit(0); } //タイムアウト設定 Timeout.ReadIntervalTimeout = 0xFFFFFFFF; Timeout.ReadTotalTimeoutMultiplier = 0; Timeout.ReadTotalTimeoutConstant = 1000; Timeout.WriteTotalTimeoutMultiplier = 0; Timeout.WriteTotalTimeoutConstant = 1000; Ret = SetCommTimeouts(hComm, &Timeout); if(Ret == FALSE) { printf("SetCommTimeouts failed.\n"); CloseHandle(hComm); exit(0); } //通信設定 Ret = GetCommState(hComm, &dcb); if(Ret = FALSE) { printf("GetCommState failed.\n"); CloseHandle(hComm); exit(0); } dcb.BaudRate = 19200; dcb.Parity = 0; dcb.StopBits = ONESTOPBIT; dcb.ByteSize = 8; Ret = SetCommState(hComm, &dcb); if(Ret == FALSE) { printf("SetCommState failed.\n"); CloseHandle(hComm); exit(0); } //送信データ生成 for(n = 0; n < 256; n++) bSendBuffer[n] = n; //データ送信 Ret = EscapeCommFunction(hComm, SETRTS); if(Ret == FALSE) { printf("EscapeCommFunction failed.\n"); CloseHandle(hComm); exit(0); } Ret = WriteFile(hComm, bSendBuffer, 256, &dwSendSize, NULL); if(Ret == FALSE) { printf("WriteFile filed.\n"); CloseHandle(hComm); exit(0); } //終了処理 CloseHandle(hComm); }
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.