有沒有辦法做到Rx FIFO有多少讀多少? |
缺席
|
happosai
高階會員 發表:93 回覆:228 積分:109 註冊:2002-09-15 發送簡訊給我 |
假如Rx FIFO內有10byte,而ReadFile()參數我要求讀100byte,但是我仍想立即
讀取這10byte而非等到FIFO裝滿100byte,目前只找到下面這種爛方法: int sio_read(sio_fd_t fd, u8_t *pBuf, u32_t len) { DWORD cbRead; BOOL retCode; DWORD err; COMSTAT stat; int i; if(!ClearCommError(fd, &err, &stat)) { dout("ClearCommError() failed!"); return -1; } if(stat.cbInQue == 0) { for(i = 0; i < MAX_RX_WAIT_TIME; i) { ClearCommError(fd, &err, &stat); if(stat.cbInQue > 0) break; Sleep(50); } if(i >= MAX_RX_WAIT_TIME) return 0; } if(stat.cbInQue >= len) { ReadFile(fd, pBuf, len, &cbRead, 0); return cbRead; } else { ReadFile(fd, pBuf, stat.cbInQue, &cbRead, 0); return cbRead; } return 0; } |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |