linux串列埠程式設計

2021-06-25 18:43:50 字數 1950 閱讀 6872

#include     /*標準輸入輸出定義*/

#include /*標準函式庫定義*/

#include /*unix標準函式定義*/

#include /**/

#include /**/

#include /*檔案控制定義*/

#include /*ppsix終端控制定義*/

#include /*錯誤號定義*/

/***@brief 設定串列埠通訊速率

*@param fd 型別 int 開啟串列埠的檔案控制代碼

*@param speed 型別 int 串列埠速度

*@return void*/

#define false -1

#define true 0

int speed_arr = ;

int name_arr = ;

void set_speed(int fd, int speed)

tcflush(fd,tcioflush);

}}/**

*@brief 設定串列埠資料位,停止位和效驗位

*@param fd 型別 int 開啟的串列埠檔案控制代碼*

*@param databits 型別 int 資料位 取值 為 7 或者8*

*@param stopbits 型別 int 停止位 取值為 1 或者2*

*@param parity 型別 int 效驗型別 取值為n,e,o,,s

*/int set_parity(int fd,int databits,int stopbits,int parity)

options.c_cflag &= ~csize;

switch (databits) /*設定資料位數*/

switch (parity)

/* 設定停止位*/

switch (stopbits)

/* set input parity option */

if (parity != 'n')

options.c_iflag |= inpck;

options.c_cc[vtime] = 150; // 15 seconds

options.c_cc[vmin] = 0;

tcflush(fd,tciflush); /* update the options and do it now */

if (tcsetattr(fd,tcsanow,&options) != 0)

return (true);

}/**

*@breif 開啟串列埠

*/int opendev(char *dev)

else

return fd;

}/**

*@breif main()

*/int main(int argc, char **argv)

if (set_parity(fd,8,1,'n')== false)

fd_set rfds;

struct timeval tv;

int retval;

tv.tv_sec = 0;

tv.tv_usec = 1000;

while(1)

else if(fd_isset(fd, &rfds))

}data[len]='\0';

printf("%s",data);

fflush(null); //attention ! refresh data buffer,otherwise cannot see print data.

int nbyte = write(fd, data ,strlen(data));

} else

}close(fd);

return 0;

}

Linux串列埠程式設計

串列埠概述 常見資料通訊方式 並行通訊,序列通訊 uart的主要操作 資料傳送及接受 產生中斷 產生波特率 loopback模式 紅外模式 自動流控模式 串列埠引數的配置主要包括 波特率 資料位 停止位 流控協議。linux中的串列埠裝置檔案放於 de 目錄下,串列埠一,串列埠二分別為 dev tt...

Linux串列埠程式設計

串列埠概述 常見資料通訊方式 並行通訊,序列通訊 uart的主要操作 資料傳送及接受 產生中斷 產生波特率 loopback模式 紅外模式 自動流控模式 串列埠引數的配置主要包括 波特率 資料位 停止位 流控協議。linux中的串列埠裝置檔案放於 de 目錄下,串列埠一,串列埠二分別為 dev tt...

Linux串列埠程式設計

串列埠概述 常見資料通訊方式 並行通訊,序列通訊 uart的主要操作 資料傳送及接受 產生中斷 產生波特率 loopback模式 紅外模式 自動流控模式 串列埠引數的配置主要包括 波特率 資料位 停止位 流控協議。linux中的串列埠裝置檔案放於 de 目錄下,串列埠一,串列埠二分別為 dev tt...