linux 下串口編程VTIME和VMIN的設置

VTIME定義要求等待的時間量(取值不能大於cc_t)。

VMIN定義了要求等待的最小字節數。

 

options.c_cc[VTIME] = X;   //設置從獲取到1個字節後開始計時的超時時間

options.c_cc[VMIN] = Y;     //設置要求等待的最小字節數

 

在原始模式下對read()函數的影響:

1、X=0,Y!=0。函數read()只有在讀取了Y個字節的數據或者收到一個信號的時候才返回;

2、X!=0,Y=0。即使沒有數據可以讀取,read()函數等待X時間量後返回;

3、X!=0,Y!=0。第一個字節數據到時開始,最先滿足收到Y個字節或達超時時間X任意一個條件,read()返回;

4、X=0,Y=0。即使讀取不到任何數據,函數read也會立即返回。

 

示例:

通過串口連ID卡讀卡器,要求讀串口至少收6個字節數據立即返回,可以將串口的上述兩個設置項設置如下:

options.c_cc[VTIME]=0;

options.c_cc[VMIN]=6;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章