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

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

windows下獲取串口中數(shù)據(jù)的長(zhǎng)度

2019-11-11 04:48:26
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

windows下可以通過(guò)調(diào)用ClearCommError來(lái)獲取接收的串口數(shù)據(jù)的長(zhǎng)度。

代碼如下:

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;}

但是通過(guò)ClearCommError獲取到的并不一定是正確的數(shù)據(jù)長(zhǎng)度,因?yàn)樵谀阏{(diào)用此函數(shù)時(shí),數(shù)據(jù)不一定接收完成,所以在多次調(diào)用函數(shù)獲得的返回值不變時(shí),才能保證數(shù)據(jù)長(zhǎng)度的真確。

下面修改為阻塞型(有數(shù)據(jù)函數(shù)才會(huì)返回):

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;}
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 枣庄市| 达州市| 太和县| 铁力市| 晋州市| 尼玛县| 怀远县| 永和县| 古浪县| 临沂市| 噶尔县| 土默特左旗| 翁源县| 灵台县| 华宁县| 曲水县| 台中市| 洛扎县| 陇川县| 清丰县| 太湖县| 崇明县| 遵化市| 西安市| 金湖县| 岳阳县| 望奎县| 华宁县| 喀什市| 潮州市| 石屏县| 九龙城区| 全州县| 上饶县| 成武县| 县级市| 从化市| 漾濞| 赞皇县| 集安市| 宁阳县|