国产探花免费观看_亚洲丰满少妇自慰呻吟_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;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永平县| 城步| 拜泉县| 泸西县| 左贡县| 利辛县| 马关县| 宝丰县| 富顺县| 内丘县| 沙湾县| 玛纳斯县| 新昌县| 夏邑县| 登封市| 静海县| 大宁县| 长治县| 开远市| 手游| 淅川县| 内丘县| 辽宁省| 毕节市| 巢湖市| 宜兰县| 调兵山市| 沁阳市| 饶平县| 噶尔县| 海口市| 商南县| 张家界市| 股票| 江川县| 德清县| 高要市| 当阳市| 八宿县| 大悟县| 林甸县|