国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

windows下獲取串口中數據的長度

2019-11-11 05:20:55
字體:
來源:轉載
供稿:網友

windows下可以通過調用ClearCommError來獲取接收的串口數據的長度。

代碼如下:

UINT GetDataSize(){ DWord dwError = 0; COMSTAT comstat; memset(&comstat, 0, sizeof(COMSTAT)); UINT size = 0; if (ClearCommError(m_hCom, &dwError, &comstat)) { size = comstat.cbInQue; } return size;}

但是通過ClearCommError獲取到的并不一定是正確的數據長度,因為在你調用此函數時,數據不一定接收完成,所以在多次調用函數獲得的返回值不變時,才能保證數據長度的真確。

下面修改為阻塞型(有數據函數才會返回):

UINT GetDataSize(){ DWORD dwError = 0; COMSTAT comstat; memset(&comstat, 0, sizeof(COMSTAT)); UINT size = 0; while (size == 0) { if (ClearCommError(m_hCom, &dwError, &comstat)) { size = comstat.cbInQue; } } Sleep(3); UINT newSize= 0; if (ClearCommError(m_hCom, &dwError, &comstat)) { newSize= comstat.cbInQue; } while (newSize!= size) { size = newSize; Sleep(3); if (ClearCommError(m_hCom, &dwError, &comstat)) { newSize= comstat.cbInQue; } } return newSize;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东乡| 武义县| 旺苍县| 秦皇岛市| 南京市| 泸州市| 长春市| 崇信县| 泽普县| 南涧| 香河县| 平泉县| 顺义区| 育儿| 台南县| 宾阳县| 许昌市| 治多县| 青岛市| 北流市| 土默特右旗| 秭归县| 金塔县| 陇南市| 海原县| 邯郸县| 海门市| 盘山县| 元朗区| 育儿| 息烽县| 广灵县| 理塘县| 罗江县| 邢台市| 万荣县| 固阳县| 鹤岗市| 通州市| 海林市| 维西|