linux串口是串行接口的簡稱,是採用串行通信方式的擴展接口;串口是計算機一種常用的接口,具有連接線少、通信簡單的特點,只要一對傳輸線就可以實現雙向通信,linux可以使用系統調用open()或close()來開啟或關閉串列埠。
本教學操作環境:linux7.3系統、Dell G3電腦。
序列介面(Serial Interface) 是指資料一位一位地順序傳送,其特點是通訊線路簡單,只要一對傳輸線就可以實現雙向通訊(可以直接利用電話線作為傳輸線),從而大大降低了成本,特別適用於遠距離通信,但傳送速度較慢。
一則訊息的各位資料被逐位 依序傳送的通訊方式稱為串列通訊。
序列通訊的特點是:
資料位元的傳送,以位元順序進行,最少只需一條傳輸線即可完成;
成本低但傳送速度慢。串列通訊的距離可以從幾公尺到幾千公尺;
根據訊息的傳送方向,串列通訊可以進一步分為單工、半雙工和全雙工三種。
串口是電腦上的串列通訊的實體介面。在電腦歷史上,串口曾經被廣泛用於連接電腦和終端設備和各種外部設備。雖然乙太網路介面和USB介面也是以一個串列流進行資料傳送的,但串列埠連接通常特別指那些與RS-232標準相容的硬體或是調變解調器的介面。
序列介面簡稱串列埠(通常指COM介面),是採用串列通訊方式的擴充介面。串口是電腦一種常用的接口,具有連接線少,通訊簡單,得到廣泛的使用。串口的特點是通訊線路簡單,只要一對傳輸線就可以實現雙向通訊從而大大降低了成本,特別適用於遠距離通信,但傳送速度較慢。在Linux中,同樣存在著大量的串口,本文我們就來聊聊Linux下的串口。
一、串列埠所需的頭檔
1: #include /*標準輸入輸出定義*/
2: #include /*標準函數庫定義*/
#3: #include /*Unix 標準函數定義*/
#4: #include
5: #include
6: #include /*檔案控制定義*/
7: #include /*POSIX 終端控制定義*/
#8: #include /*錯誤編號定義*/
##二、開啟關閉串口
對於串列裝置檔案的操作與其他檔案操作基本相同。可以使用系統呼叫open(), close()開啟或關閉串列埠。
在Linux下串列埠檔案是在/dev下的,例如串口一為/dev/ttyS0,串列埠二為/dev/ttyS1。
open(),close()系統呼叫的原型
1: #include 2: #include 3: #include 4: int open(const char *path, int oflags); 5: int open(const char *path, int oflags, mode_t mode); 6: #include 7: int close(int fildes); 8: 实例:打开串口ttyS0。 9: int fd; 10: /*以读写方式打开串口*/ 11: fd = open( "/dev/ttyS0", O_RDWR); 12: if (-1 == fd){ 13: /* 不能打开串口一*/ 14: perror("open serial port error"); 15: }
三、設定串列埠
設定串列埠包括波特率設定、校驗位、停止位設定。在串列埠設定中主要是設定struct termios結構體成員的值。
struct termios結構如下
1: #include 2: struct termio 3: { 4: unsigned short c_iflag; /* input options输入模式标志 */ 5: unsigned short c_oflag; /* output options输出模式标志 */ 6: unsigned short c_cflag; /* control options控制模式标志*/ 7: unsigned short c_lflag; /* local mode flags */ 8: unsigned char c_line; /* line discipline */ 9: unsigned char c_cc[NCC]; /* control characters */ 10: };
相關推薦:《Linux影片教學》
以上是linux串口是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!