串列埠通過直接連線在兩台裝置間的線傳送和接收資料,兩台裝置通訊最少需要三根線(傳送資料、接收資料和接地)才可以通訊。以最常見的 rs232 串列埠為例,通訊距離較近時(<12m) ,可以用電纜線直接連線標準 rs232 埠。如果傳輸距離遠,可以通過數據機(modem)傳輸。因為串列埠裝置工作頻率低且容易受到干擾,遠距離傳輸會造成資料丟失。
db9 介面的 rs232 串列埠資料線定義
linux 系統後在/dev 目錄下有若干個 ttysx(x代表從 0 開始的正整數)裝置檔案。ttys0 對應第乙個串列埠,也就是 windows 系統下的串列埠裝置 com1,以此類推。
#include /*標準輸入輸出定義*/
#include /*標準函式庫定義*/
#include /*unix 標準函式定義*/
#include
#include
#include /*檔案控制定義*/
#include /*ppsix 終端控制定義*/
#include /*錯誤號定義*/
開啟和關閉串列埠
linux 系統通常使用 termios 結構儲存串列埠引數,該結構在 termios.h標頭檔案定義如下:
struct termios
;termios 結構的各成員常用取值
termios 結構 c_cc 成員陣列下標取值及其含義
termios.h 標頭檔案為 termios 結構提供了一組設定的函式,函式定義如下:
#include
#include
int tcgetattr(int fd, struct termios *termios_p);
int tcsetattr(int fd, int optional_actions, struct termios *termios_p);
int tcsendbreak(int fd, int duration);
int tcdrain(int fd);
int tcflush(int fd, int queue_selector);
int tcflow(int fd, int action);
int cfmakeraw(struct termios *termios_p);
speed_t cfgetispeed(struct termios *termios_p);
speed_t cfgetospeed(struct termios *termios_p);
int cfsetispeed(struct termios *termios_p, speed_t speed);
int cfsetospeed(struct termios *termios_p, speed_t speed);
Linux 下串列埠通訊程式設計
int open com char device name return fd end of open com 一 串列埠程式需要的標頭檔案 include 標準輸入輸出定義 include 標準函式庫定義 include unix標準函式定義 include include include 檔案控...
Linux 串列埠通訊
011 08 03 13 04 389人閱讀收藏 舉報以前跟著做過vxworks的開發,主要通訊方式是串列埠,因為底層bsp包已經做好了,串列埠通訊非常簡單。後來接觸linux,在一塊ok6410上跑linux串列埠通訊,才發現原來天真的以為甚是簡單的串列埠變得如此的不簡單。include 1 串列...
VC串列埠通訊程式設計
win32串列埠程式設計 韓耀旭 在工業控制中,工控機 一般都基於windows平台 經常需要與智慧型儀表通過串列埠進行通訊。串列埠通訊方便易行,應用廣泛。一般情況下,工控機和各智慧型儀表通過rs485匯流排進行通訊。rs485的通訊方式是半雙工的,只能由作為主節點的工控pc機依次輪詢網路上的各智慧...