當前位置:
首頁 >
linux 串口控制read()的说明
發布時間:2024/9/3
43
豆豆
生活随笔
收集整理的這篇文章主要介紹了
linux 串口控制read()的说明
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在數組c_cc中有兩個下標(VTIME和VMIN)對應的元素不是控制符,并且只是在原始的模式下才有效。串口的模式控制是通過options.c_lflag控制的,如:options.c_lflag &=~ICANON設置串口為原始模式。在原始模式下,它們決定了read()函數在什么時候返
回。在標準的模式下,除非設置了非阻塞的模式(O_NONBLICK)選項,否則只有當遇到行結束符或者文件結束符以后才函數讀才返回。
??????VTIME定義要求等待零到幾百毫秒的時間量通常為一個8位的無符號數。VMIN定義了要求等待的最小字節數這個字節可能是零。??
????? 如果VTIME和VMIN都不為零,VTIME定義的是當接收到第一個字節的數據后開始計算等待的時間量。如果調用read()函數時可以得到數據,計時器馬上開始計時。函數read()會讀取到VIMN字節數據后返回也可能是計時到了后返回,取決于那個條件首先實現。
????? 阻塞訪問的效率通常比非阻塞訪問的效率高。阻塞訪問時不能獲取資源的進程將進入休眠,它將cpu資源讓給其他的進程去調用。非阻塞訪問時用戶獲取設備資源只能不停的查詢,這反而無謂地耗費cpu資源。
總結
以上是生活随笔為你收集整理的linux 串口控制read()的说明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cadence 添加自己设计的pad方法
- 下一篇: Linux 下安装配置C/C++开发环境