国产探花免费观看_亚洲丰满少妇自慰呻吟_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;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新蔡县| 宝山区| 东城区| 广丰县| 加查县| 宣化县| 新野县| 镇江市| 上思县| 徐水县| 荥阳市| 康定县| 定西市| 油尖旺区| 阳泉市| 天津市| 灵武市| 康马县| 宜城市| 兖州市| 小金县| 建阳市| 麦盖提县| 扶风县| 寻乌县| 灵武市| 沁水县| 长武县| 双江| 桦甸市| 仙游县| 凤庆县| 威信县| 西昌市| 灌阳县| 丰县| 绥江县| 德令哈市| 二连浩特市| 布拖县| 仙桃市|