[問題] RS232讀取問題

看板C_and_CPP (C/C++)作者 (如沐春風進入語音)時間15年前 (2010/11/07 21:49), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 1.我看了Serial Communications in Win32的文章對於RS232讀取資料有個疑問 下面是該文章關於READING的程式碼。其中ReadFile(hComm, lpBuf, READ_BUF_SIZE , &dwRead, &osReader)) 的lpBuf為讀取到的字串,READ_BUF_SIZE為字串的 位元,那麼我可以假設lpBuf為char lpBuf[1024],READ_BUF_SIZE的位置直接 寫1024嗎? 2.另外一個問題是我還須要額外設定讓資料儲存的位置以便接收由終端機傳來的 字串嗎? 3.我DEBUG的結果說 HandleASuccessfulRead(lpBuf, dwRead)並未辨識, HandleASuccessfulRead()函數是WIN32 API的函數嗎? 希望得到的正確結果: 我不太瞭解由終端機傳來的資料是不是儲存在lpBuf 程式跑出來的錯誤結果: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) VC++ 有問題的code: (請善用置底文標色功能) DWORD dwRead; BOOL fWaitingOnRead = FALSE; OVERLAPPED osReader = {0}; // Create the overlapped event. Must be closed before exiting // to avoid a handle leak. osReader.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL); if (osReader.hEvent == NULL) // Error creating overlapped event; abort. if (!fWaitingOnRead) { // Issue read operation. if (!ReadFile(hComm, lpBuf, READ_BUF_SIZE, &dwRead, &osReader)) { if (GetLastError() != ERROR_IO_PENDING) // read not delayed? // Error in communications; report it. else fWaitingOnRead = TRUE; } else { // read completed immediately HandleASuccessfulRead(lpBuf, dwRead); } } 補充說明: -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.230.126.120
文章代碼(AID): #1Crgvv3O (C_and_CPP)
文章代碼(AID): #1Crgvv3O (C_and_CPP)