Linux串口編程(1)

串行通訊是利用一條傳輸線以比特爲單位順序傳送。特色是通訊線路簡單,通常電纜就能夠實現串口通訊,適合於長距離且速度較慢的數據通訊。ios

串口是計算機上比較常見的接口,通常爲RS—232—C接口。函數

串口的配置參數通常包括波特率,起始位比特數,數據位比特數,中止位比特數和流控模式。接口

 串口的設置主要是設置結構體termios的各成員值。ip

 #include <termios.h>                
ci

struct termiosinput

{
io

tcflag_t c_iflag;        /* input mode flags  輸入模式標誌*/
配置

tcflag_t c_oflag;        /* output mode flags 輸出模式標誌*/
tcflag_t c_cflag;        /* control mode flags 控制模式標誌*/
tcflag_t c_lflag;        /* local mode flags 本地模式標誌*/
cc_t c_line;            /* line discipline * 線路規程/
cc_t c_cc[NCCS];        /* control characters  控制特徵*/
speed_t c_ispeed;        /* input speed * 輸入速度/
speed_t c_ospeed;        /* output speed * 輸出速度/

};終端


termios是在POSIX規範中定義的標準接口,表示終端設備。通信

終端有三種工做方式,爲規範模式(canonical mode),非規範模式(non-canonical mode)和原始模式(raw mode)。經過設置termios的c_iflag中設置ICANNON標誌來定義終端是以規範模式仍是非規範模式,默認是規範模式。

在規範模式下,全部的輸入是基於行進行處理的,非規範模式下,輸入是即時有效的。

在非規範模式下,對c_cc[NCCS]的設置決定了輸入時read()函數的調用方式。區別以下:

c_cc[VMIN]至關於緩衝區,c_cc[VTIME]至關於等待時間,它們有4中組合,分別爲當即讀取,阻塞讀c_cc[VMIN]個數據,只要有數據或等待c_cc[VTIME]個十分之一秒時間和有c_cc[VMIN]個數據或等待c_cc[VTIME]個十分之一秒時間。

相關文章
相關標籤/搜索