首頁 >運維 >linux運維 >linux串口是什麼意思

linux串口是什麼意思

WBOY
WBOY原創
2022-05-07 16:08:133532瀏覽

linux串口是串行接口的簡稱,是採用串行通信方式的擴展接口;串口是計算機一種常用的接口,具有連接線少、通信簡單的特點,只要一對傳輸線就可以實現雙向通信,linux可以使用系統調用open()或close()來開啟或關閉串列埠。

linux串口是什麼意思

本教學操作環境:linux7.3系統、Dell G3電腦。

linux串列埠是什麼意思

序列介面(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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn