freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

api串口通信實例-文庫吧在線文庫

2025-07-23 06:55上一頁面

下一頁面
  

【正文】 tyAttributes定義安全屬性,一般不用,可設(shè)為NULL。對于一些很簡單的通訊程序來說,可以選擇同步,這樣可以省去很多錯誤檢查,但是對于復雜一點的應用程序,異步是最佳選擇。 GENERIC_READ | GENERIC_WRITE, //允許讀寫}elsereturn true。}/************************** program end***************************************/ GENERIC_READ | GENERIC_WRITE, //允許讀寫}elsereturn true。}/************************** program end***************************************/參數(shù)說明: hFile:串口句柄 lpDCB:設(shè)備控制塊(Device Control Block)結(jié)構(gòu)地址。 DWORD DCBlength。 DWORD fBinary: 1。 DWORD fOutxCtsFlow:1。 WORD XonLim。 char EvtChar。 SetCommMask()說明:用途:設(shè)置串口通信事件。還有,串口因為是I/O操作,可能會產(chǎn)生錯誤,這時候需要用SetCommTimeouts()設(shè)置超時限制,以避免阻塞現(xiàn)象。}COMMTIMEOUTS, LPCOMMTIMEOUTS。ReadTotalTimeoutConstant:以毫秒為單位指定一個常數(shù),用于計算讀操作的總限時時間。 =0。 SetCommTimeouts(m_hCom, amp。PurgeComm()說明:功能:終止目前正在進行的讀或?qū)懙膭幼骱瘮?shù)原型:BOOL PurgeComm(HANDLE hFile, // handle of munications resourceDWORD dwFlags // action to perform)。hComm = CreateFile(portname, //串口號return FALSE。memset(amp。 = rate。 = 0。 = 0。 = 0。 COMMTIMEOUTS timeouts。 =WriteTotalconstant。 else main(){bool open。}/************* program end***************************************/ 2CE_FRAME:硬件檢測到幀錯誤。 //輸入緩沖區(qū)中的字節(jié)數(shù) DWORD cbOutQue。ComStat)。但為了安全起見,最好是顯式的關(guān)閉它。如果規(guī)定了讀/寫操作的超時,那么當超過規(guī)定時間后,hEvent成員會變成有信號的。DWORD OffsetHigh。當由SetCommMask函數(shù)所指定的事件產(chǎn)生時這個函數(shù)將返回TRUE。HANDLE hComm。 0,bool setupdcb(int rate_arg){if(!GetCommState(hComm,amp。 = rate。 = 0。 = 0。 = 0x19。/* */ }timeouts)) }DWORD BytesRead = 0。m_ov)。 printf(%c,RXBuff)。 }m_ov, TRUE)。 }} = 0。}default:{// all other error codesbreak。// Verify that the data size send equals what we tried to sendif (BytesSent != m_nToSend){printf(WARNING: WriteFile() error.. Bytes Sent: %d。PurgeComm(hComm, PURGE_RXCLEAR | PURGE_TXCLEAR | PURGE_RXABORT | PURGE_TXABORT)。進程是應用程序的執(zhí)行實例,每個進程是由私有的虛擬地址空間、代碼、數(shù)據(jù)和其它各種系統(tǒng)資源組成,進程在運行過程中創(chuàng)建的資源隨著進程的終止而被銷毀,所使用的系統(tǒng)資源在進程終止時被釋放或關(guān)閉。要說明的一點是,目前大多數(shù)的計算機都是單處理器(CPU)的,為了運行所有這些線程,操作系統(tǒng)為每個獨立線程安排一些CPU時間,操作系統(tǒng)以輪換方式向線程提供時間片,這就給人一種假象,好象這些線程都在同時運行。由于創(chuàng)建線程所使用的函數(shù)CreateThread()是windows API函數(shù),所以。 DWORD dwCreationFlags,該函數(shù)在其調(diào)用進程的進程空間里創(chuàng)建一個新的線程,并返回已建線程的句柄,其中各參數(shù)說明如下:lpThreadAttributes:指向一個 SECURITY_ATTRIBUTES結(jié)構(gòu)的指針,該結(jié)構(gòu)決定了線程的安全屬性,一般置為 NULL; dwStackSize:指定了線程的堆棧深度,一般都設(shè)置為0; lpStartAddress:表示新線程開始執(zhí)行時代碼所在函數(shù)的地址,即線程的起始地址。BOOL TerminateThread(HANDLE hThread,DWORD dwExitCode)。idThread:將接收消息的線程的ID; Msg:指定用來發(fā)送的消息; wParam:同消息有關(guān)的字參數(shù); lParam:同消息有關(guān)的長參數(shù); 調(diào)用該函數(shù)時,如果即將接收消息的線程沒有創(chuàng)建消息循環(huán),則該函數(shù)執(zhí)行失敗。DWORD WaitForMultipleObject(DWORD dwCount , CONST HANDLE* phObject, BOOL fWaitAll, DWORD dwMillisecinds)?! wMil liseconds參數(shù) 該參數(shù)的作用與它在WaitForSingleObject中的作用完全相同。返回值是WAIT_OBJECT_0與(WAIT_OBJECT_0 + dwCount1)之間的一個值。 //消息ID是個字串,不是個DWORD通常為:lpBuffer:如果未指定FORMAT_MESSAGE_ALLOCATE_BUFFER,則為自己提供的緩沖區(qū)否則為系統(tǒng)LocalAlloc分配,需要被用戶LocalFree。os,0,sizeof(OVERLAPPED))。break。break。default:break。// Get error flags.fDNS = dwErrors amp。fMODE = dwErrors amp。fTXFULL = dwErrors amp。 char queued with TransmitCommCharif ()// bytes have been received, but not readif ()// bytes are awaiting transferreturn true?! indows NT/2000:lpEventAttributes的結(jié)構(gòu)中的成員為新的事件指定了一個安全符。名稱的字符格式限定在MAX_PATH之內(nèi)。  終端服務(wù)(Terminal Services):名稱中可以加入Global\或是Local\的前綴,這樣可以明確的將對象創(chuàng)建在全局的或事務(wù)的命名空間?! ∪绻瘮?shù)失敗,函數(shù)返回值為NULL,如果需要獲得詳細的錯誤信息,需要調(diào)用GetLastError。使用ResetEvent函數(shù)將事件對象的狀態(tài)置為無信號狀態(tài)。在CreateEvent函數(shù)中,lpEventAttributes參數(shù)指定句柄可被繼承時,通過CreateProcess函數(shù)創(chuàng)建的子進程繼承的事件對象句柄?! ∈褂铆h(huán)境:  Windows NT/2000:  Windows 95/98:需要Windows 95或更高版本  頭文件:;需要包含 。一個進程可以在OpenEvent或CreateEvent函數(shù)中指定一個名字,從而獲得一個有名的事件對象句柄。系統(tǒng)將自動將此函數(shù)置為無符號狀態(tài)?! τ诙鄬ο蟮却瘮?shù),可以指定為任意或所有指定的對象被置為有信號狀態(tài)。名稱的其它部分除了反斜杠(\),可以使用任意字符。如果lpEventAttributes是參數(shù)不是NULL,它將確定此句柄是否可以被繼承,但是其安全描述符成員將被忽略。如果設(shè)置為FALSE,當事件被一個等待線程釋放以后,系統(tǒng)將會自動將事件狀態(tài)復原為無信號狀態(tài)。fRXPARITY = dwErrors amp。fFRAME = dwErrors amp。fOOP = dwErrors amp。BOOL fBREAK, fDNS, fFRAME, fIOE, fMODE。case EV_BREAK:PostMessage(Parent,WM_COMM_BREAK,0,0)。break。os)){GetOverlappedResult(hComm,amp。如果異步操作不能立即完成的話,函數(shù)返回FALSE,并且調(diào)用GetLastError()函數(shù)分析錯誤原因后返回ERROR_IO_PENDING,在函數(shù)返回之前系統(tǒng)設(shè)置OVERLAPPED結(jié)構(gòu)中的事件為無信號狀態(tài),該函數(shù)等待用SetCommMask()函數(shù)設(shè)置的串口事件發(fā)生,共有9種事件可被監(jiān)視:EV_BREAK,EV_CTS,EV_DSR,EV_ERR,EV_RING,EV_RLSD,EV_RXCHAR, EV_RXFLAG,EV_TXEMPTY;當其中一個事件發(fā)生或錯誤發(fā)生時,函數(shù)將 OVERLAPPED結(jié)構(gòu)中的事件置為有信號狀態(tài),并將事件掩碼填充到dwMask參數(shù)中。lpSource:指定了FORMAT_MESSAGE_FROM_HMODULE的話,此參數(shù)表示模塊的HANDLE指定了FORMAT_MESSAGE_FROM_STRING的話,此參數(shù)表示id字串通常為:NULL。 FORMAT_MESSAGE_FROM_HMODULE通常,在寫WINDOWS程序的時候我們會用 GetLastError()來獲得錯誤代號,進而想要知道具體出錯原因(文本描述),我們可以用 FormatMessage函數(shù)來得到??赡艿姆祷刂凳荳AIT_FAILED和WAIT_TIMEOUT,這兩個值的作用是很清楚的。一種方式是讓線程進入等待狀態(tài),直到指定內(nèi)核對象中的任何一個變?yōu)橐淹ㄖ獱顟B(tài)。如果在掛起的dwMilliseconds毫秒內(nèi),線程所等待的對象變?yōu)橛行盘枲顟B(tài),則該函數(shù)立即返回;如果超時時間已經(jīng)到達dwMilliseconds毫秒,但hHandle所指向的對象還沒有變成有信號狀態(tài),函數(shù)照樣返回。因此,一般不建議使用該函數(shù)。VOID ExitThread(DWORD dwExitCode)。DWORD WINAPI ThreadFunc( LPVOID lpParam )為線程函數(shù),lpParam為線程函數(shù)的參數(shù)。HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes,  每一個進程至少有一個主執(zhí)行線程,它無需由用戶去主動創(chuàng)建,是由系統(tǒng)自動創(chuàng)建的。system(pause)。void TRUE)。BytesSent, // Handle to COMM port // Overlapped structureif (!bResult){DWORD dwError = GetLastError()。m_ov )。DWORD BytesSent = 0。 } // close if (bRead) else // Stores number of bytes read { return true。 if(!SetCommState(hComm,amp。 = 0。 = 0。 = 1。 /* misc parameters */ = 0。 = RTS_CONTROL_DISABLE。 /* Serial Port Config */0)。 m_dwCommEvents。實例4:/******************WaitCommEvent()用途:用來判斷用SetCommMask()函數(shù)設(shè)置的串口通信事件是否已發(fā)生。)。如果GetLastError函數(shù)返回ERROR_IO_PENDIN
點擊復制文檔內(nèi)容
物理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1