linux串口是什么意思

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 /*錯誤號定義*/

二、打開關閉串口

對于串口設備文件的操作與其他文件操作基本相同??梢允褂孟到y調用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視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享