• 締切済み

COM1ポート開き,9600,8,なし,1,HWの設定で垂れ流しデータ読むだけのCプログラム作って

ください。Borland C v5.5 無料版 on windows2000 on thinkpadのDOS窓で動いて欲しいだけ、です。基本が解れば、あとは自分で改造したいですので、どなたか、お優しい方、何卒お願いします! 本もないのに、無謀ですが、たとえば以下のは参考になりますか?以下のはC++ですので、ちょっと私には解りません。C++でなく、Cで、書き下して欲しいです。 #include <windows.h> #include <iostream> #include <stdio.h> using namespace std; int main() { HANDLE hComm; char buff[190]; DWORD size; hComm = CreateFile( "COM1", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 ); if( hComm == INVALID_HANDLE_VALUE ) exit( 1 ); ReadFile(hComm, buff, 200, &size, NULL); cout << buff << endl; getchar(); CloseHandle(hComm); return 0; }

みんなの回答

  • e101tre
  • ベストアンサー率38% (7/18)
回答No.1

上記サンプルは,  ・COM1 ポートを開いて(CreateFile())  ・データを読む(ReadFile()) だけの基本的なプログラムです。 後は,ポートを開いた後に,以下に示すようにポートの設定を行えばいいと思います。 ------ ここから DCB TL_dcb; /* 通信仕様設定 */ GetCommState( hComm, &TL_dcb ); TL_dcb.BaudRate = CBR_9600; TL_dcb.ByteSize = 8; TL_dcb.Parity = NOPARITY; TL_dcb.StopBits = ONESTOPBIT; SetCommState( hComm, &TL_dcb ); ------ ここまで また,文法もほとんど C と同じです。 C++ っぽいところは,  cout << buff << endl; の部分くらいで,この意味は  printf("%s\n", buff); と同じです。

関連するQ&A