Linux串列埠程式設計 2 mark校驗

2021-06-16 09:03:39 字數 1628 閱讀 4103

#include     #include     #include     #include     #include     #include     #include     #include     #include     main()

; char read_buf[256];

char write_buf[256];

struct termios opt;

fd = open("/dev/ttyusb0", o_rdwr | o_noctty); //預設為阻塞讀方式

if(fd == -1)

tcgetattr(fd, &opt);

cfsetispeed(&opt, b9600);

cfsetospeed(&opt, b9600);

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

opt.c_cflag &= ~csize;

opt.c_cflag |= cs8;

opt.c_cflag &= ~cstopb;

opt.c_cflag &= ~parenb;

opt.c_cflag &= ~inpck;

opt.c_cflag |= (clocal | cread);

opt.c_lflag &= ~(icanon | echo | echoe | isig);

opt.c_oflag &= ~opost;

opt.c_oflag &= ~(onlcr | ocrnl); //新增的

opt.c_iflag &= ~(icrnl | inlcr);

opt.c_iflag &= ~(ixon | ixoff | ixany); //新增的

// //***********************************==

// //space

// opt.c_cflag |= parenb | cs8 | cmspar ;

// //***********************************==

//***********************************==

//mark

opt.c_cflag |= parenb | cs8 | cmspar ;

opt.c_cflag &= ~parodd;

//***********************************==

opt.c_cc[vtime] = 0;

opt.c_cc[vmin] = 0;

tcflush(fd, tcioflush);

printf("configure complete\n");

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

printf("start send and receive data\n");

while(1)

}

實驗過程,下位機將sm2=1,char b[1]=;或char b[1]=;都能夠進入中斷!

參考:《lin

ux操作

系統下微

機與單片

機組成的

多機通訊

系統》

linux串列埠程式設計2

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

linux串列埠程式設計

include 標準輸入輸出定義 include 標準函式庫定義 include unix標準函式定義 include include include 檔案控制定義 include ppsix終端控制定義 include 錯誤號定義 brief 設定串列埠通訊速率 param fd 型別 int 開...

Linux串列埠程式設計

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