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

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

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

2019-11-11 04:15:46
字體:
來源:轉載
供稿:網友

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;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 体育| 土默特右旗| 汝南县| 佛教| 延安市| 彭山县| 沅陵县| 新龙县| 德昌县| 阿拉善盟| 柳州市| 秦皇岛市| 蕉岭县| 桓仁| 香格里拉县| 温泉县| 芮城县| 东山县| 始兴县| 揭西县| 吉首市| 桂阳县| 南安市| 大石桥市| 宜城市| 桐城市| 夏河县| 淅川县| 左云县| 梁山县| 哈巴河县| 桂林市| 威信县| 漳州市| 成武县| 宜章县| 昌乐县| 安泽县| 科技| 信丰县| 教育|