亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? p6.5.c

?? 《linux編程技術詳解》 linux編程入門的好書
?? C
字號:
#include <stdio.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <termios.h>#include <string.h>//打開指定的串口int open_port(char* port){	int fd;	if((fd=open(port,O_RDWR | O_NOCTTY | O_NONBLOCK))==-1){		perror("Cannot open the desired port");			return -1;	}	return fd;}//關閉指定串口void close_port(int fd){	close(fd);}//get the baud_rate defination according to the baud rateint get_baud_rate(unsigned long int baud_rate){	switch(baud_rate){		case 0:			return B0;		case 50:			return B50;		case 75:			return B75;		case 110:			return B110;		case 134:			return B134;		case 150:			return B150;		case 200:			return B200;		case 300:			return B300;		case 600:			return B600;		case 1200:			return B1200;		case 1800:			return B1800;		case 2400:			return B2400;		case 4800:			return B4800;		case 9600:			return B9600;		case 19200:			return B19200;		case 38400:		        return B38400;	        case 57600:		        return B57600;	 	case 115200:	   		return B115200;		case 230400:			return B230400;		default:			return -1;	}}typedef struct port_info{	int baud_rate;	int port_fd;	char parity;	char stop_bit;	char flow_ctrl;	char data_bits;}*pport_info;int set_port(pport_info p_info){	struct termios old_opt,new_opt;	int baud_rate,parity;	memset(&old_opt,0,sizeof(old_opt));	memset(&new_opt,0,sizeof(new_opt));	cfmakeraw(&new_opt);	tcgetattr(p_info->port_fd,&old_opt);	/*=========以下設置串口波特率=========*/        baud_rate=get_baud_rate(p_info->baud_rate);		//修改new_opt結構中的串口輸入/輸出波特率參數	cfsetispeed(&new_opt,baud_rate);	cfsetospeed(&new_opt,baud_rate);		//修改控制模式,保證程序不會占用串口	new_opt.c_cflag |=CLOCAL;	//修改控制模式,使得能夠從串口中讀取輸入數據 	new_opt.c_cflag |=CREAD;	/*===========設置數據流控制==========*/	switch(p_info->flow_ctrl){		case '0':			//不使用流控制			new_opt.c_cflag &=~CRTSCTS;			break;		case '1':			//使用硬件進行流控制			new_opt.c_cflag |=CRTSCTS;			break;		case '2':			new_opt.c_cflag |= IXON | IXOFF | IXANY;			break;	}		/*===========設置數據位============*/	new_opt.c_cflag &=~CSIZE;	switch(p_info->data_bits){		case '5':			new_opt.c_cflag |=CS5;			break;		case '6':			new_opt.c_cflag |=CS6;			break;		case '7':			new_opt.c_cflag |=CS7;			break;		case '8':			new_opt.c_cflag |=CS8;			break;		default:			new_opt.c_cflag |=CS8;		}	/*===========設置奇偶效驗位==========*/	switch(p_info->parity){		case '0':			//不使用奇偶效驗			new_opt.c_cflag &=~PARENB;			break;		case '1':			//使用偶效驗			new_opt.c_cflag |=PARENB;			new_opt.c_cflag &=~PARODD;			break;		case '2':			//使用奇效驗			new_opt.c_cflag |=PARENB;			new_opt.c_cflag |=PARODD;			break;	}	/*============設置停止位===========*/	if(p_info->stop_bit=='2')		new_opt.c_cflag |=CSTOPB;	else		new_opt.c_cflag &=~CSTOPB;	//修改輸出模式,原始數據輸出	new_opt.c_oflag &=~OPOST;	//修改控制字符,讀取字符的最少個數為1	new_opt.c_cc[VMIN]=1;	//修改控制字符,讀取第一個字符等待1*(1/10)s	new_opt.c_cc[VTIME]=1;	//如果發生數據溢出,接收數據,但是不再讀取	tcflush(p_info->port_fd,TCIFLUSH);		int result;	result=tcsetattr(p_info->port_fd,TCSANOW,&new_opt);	if(result==-1){		perror("Cannot set the serial port parameters");		return -1;	}	tcgetattr(p_info->port_fd,&old_opt);	return result;}int send_data(int fd,char *data,int data_len){	int len;	len=0;	len=write(fd,data,data_len);	if(len==data_len)		return len;	else{		//如果出現溢出的情況		tcflush(fd,TCOFLUSH);		return -1;	}}int recv_data(int fd,char *data,int data_len){	int len,fs_sel;	fd_set fs_read;	struct timeval time;	FD_ZERO(&fs_read);	FD_SET(fd,&fs_read);	time.tv_sec=10;	time.tv_usec=0;	//使用select實現串口的多路通信	fs_sel=select(fd+1,&fs_read,NULL,NULL,&time);	if(fs_sel){		len=read(fd,data,data_len);		return len;	}else		return -1;}int main(int argc,char* argv[]){	int port_fd;	int len;	char recv_buf[9];	int i;	if(argc!=3){		printf("Usage: %s /dev/ttySn 0(send data)/1(receive data)\n",argv[0]);		return -1;	}	port_fd=open_port(argv[1]);	if(port_fd==-1){		printf("Program Exit\n");		return -1;	}	//設置串口通信參數	struct port_info info;	info.baud_rate=9600;	info.data_bits=8; 	info.flow_ctrl=2;	info.port_fd=port_fd;	info.stop_bit=1;	info.parity=0;	if(set_port(&info)==-1){		printf("Program Exit\n");		return -1;	}		if(strcmp(argv[2],"0")==0){		for(i=0;i<10;i++){			len=send_data(port_fd,"Test Data",9);			if(len>0)				printf("%d send data successfully\n",i);			else 				printf("send data failed\n");						sleep(2);		}		close_port(port_fd);	}else{		while(1){			len=recv_data(port_fd,recv_buf,9);			if(len>0){				for(i=0;i<len;i++)					printf("receive data is %s\n",recv_buf);			}else				printf("cannot receive data\n");			sleep(2);		}      }	return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区在线| 色老汉一区二区三区| 亚洲女子a中天字幕| 久久久久9999亚洲精品| 91精品久久久久久久99蜜桃 | 成人国产精品免费观看动漫| 日本va欧美va精品| 亚洲制服丝袜在线| 一区二区三区欧美日韩| 欧美精品黑人性xxxx| 欧美在线视频你懂得| 色综合久久综合网| 91麻豆swag| 色综合久久中文综合久久97| 日本欧美一区二区三区乱码| 一区二区三区免费网站| 伊人婷婷欧美激情| 亚洲影院理伦片| 亚洲精品视频在线| 亚洲精品一二三区| 国产喂奶挤奶一区二区三区| 国产欧美日韩麻豆91| 久久久国产精品麻豆| 久久精品夜夜夜夜久久| 欧美韩日一区二区三区| 国产精品午夜电影| 日韩美女视频一区二区 | 中文字幕va一区二区三区| 欧美久久免费观看| 欧美丝袜丝nylons| 91精品国产一区二区| 91精品国产欧美一区二区18| 精品免费一区二区三区| 国产色综合一区| 日韩一区在线看| 亚洲最大成人综合| 人人精品人人爱| 国产在线国偷精品产拍免费yy| 国产九色精品成人porny| 日韩国产在线观看一区| 国产原创一区二区三区| 成人激情免费电影网址| 欧美三级三级三级爽爽爽| 日韩欧美亚洲国产另类| 久久久久久久久99精品| 亚洲免费电影在线| 久久99精品久久久久久国产越南| 日韩精品视频网站| 成人免费观看男女羞羞视频| 欧美中文字幕一区二区三区| 欧美电视剧在线看免费| 亚洲少妇屁股交4| 日本va欧美va欧美va精品| 成人精品在线视频观看| 欧美日本韩国一区| 亚洲日本丝袜连裤袜办公室| 久久精品国产77777蜜臀| 91香蕉视频污| 久久综合九色欧美综合狠狠| 亚洲三级电影网站| 国产乱国产乱300精品| 欧美日韩一区三区| 国产亚洲综合在线| 日韩国产精品久久久久久亚洲| 成人免费毛片片v| 日韩一级片在线观看| 成人欧美一区二区三区1314| 久久精品国产99国产精品| 色天天综合久久久久综合片| 国产日韩在线不卡| 亚洲一区二区三区精品在线| 老汉av免费一区二区三区| 日本国产一区二区| 国产欧美日韩精品a在线观看| 日韩va欧美va亚洲va久久| 91麻豆国产自产在线观看| 欧美人与性动xxxx| 一区二区三区中文在线| 成人黄色av电影| 久久精品人人做人人爽人人 | 色美美综合视频| 中文字幕亚洲区| 国产乱理伦片在线观看夜一区| 欧美一二三四区在线| 亚洲欧洲另类国产综合| 国产成人亚洲综合a∨婷婷图片 | 亚洲激情在线激情| 色婷婷香蕉在线一区二区| 久久久久国产一区二区三区四区| 日本美女一区二区三区视频| 欧美日韩精品是欧美日韩精品| 亚洲色图.com| 欧美亚洲一区二区三区四区| 国产欧美日韩一区二区三区在线观看| 国产一区二三区好的| 精品国产91九色蝌蚪| 久久成人久久爱| 久久久www成人免费毛片麻豆| 亚洲国产毛片aaaaa无费看| 欧美日韩国产一二三| 青草av.久久免费一区| 日韩精品中文字幕在线不卡尤物 | 精品久久久久一区二区国产| 日本91福利区| 精品电影一区二区| 成人动漫在线一区| 亚洲精品国产品国语在线app| 日本道免费精品一区二区三区| 天天综合日日夜夜精品| 欧美高清在线视频| 欧美日韩一本到| www.亚洲色图.com| 蜜芽一区二区三区| 中文字幕在线不卡视频| 欧美一级欧美一级在线播放| 福利视频网站一区二区三区| 五月天网站亚洲| 国产精品对白交换视频| 日韩亚洲欧美高清| 在线精品视频免费观看| 国产一区二区三区免费在线观看| 亚洲乱码精品一二三四区日韩在线| 91精品一区二区三区久久久久久| 99久久久久久99| 国产在线播精品第三| 亚洲私人黄色宅男| 久久久久久久一区| 日韩一区二区中文字幕| 欧美午夜精品久久久| 成人免费视频一区| 国产一区二区在线视频| 男人的天堂久久精品| 亚洲午夜精品一区二区三区他趣| 国产精品乱码一区二三区小蝌蚪| 在线播放91灌醉迷j高跟美女| 色综合久久精品| 成人激情av网| 成人黄页在线观看| 成人视屏免费看| 国产成人欧美日韩在线电影| 久久精品国产在热久久| 免费久久精品视频| 日韩精品一二区| 日韩国产欧美在线观看| 午夜激情综合网| 亚洲gay无套男同| 亚洲成av人综合在线观看| 一区二区三区四区在线免费观看| 国产精品成人一区二区三区夜夜夜| 久久精品人人做人人综合| 久久久久久久久久久久久女国产乱 | 精品国产乱码久久久久久久| 欧美一区二区三区在| 337p亚洲精品色噜噜狠狠| 欧美午夜视频网站| 欧美日本在线看| 欧美精品vⅰdeose4hd| 在线播放国产精品二区一二区四区| 日本高清无吗v一区| 欧美人牲a欧美精品| 在线91免费看| 精品日产卡一卡二卡麻豆| 精品久久久三级丝袜| 久久夜色精品国产欧美乱极品| 26uuu久久综合| 国产蜜臀97一区二区三区| 中文字幕制服丝袜成人av| 亚洲欧美中日韩| 香港成人在线视频| 久久国产生活片100| 国产酒店精品激情| 色欧美乱欧美15图片| 5月丁香婷婷综合| 久久久久亚洲综合| 亚洲精品免费播放| 麻豆成人久久精品二区三区红| 国产资源在线一区| 日本高清无吗v一区| 91精品国产日韩91久久久久久| 久久久噜噜噜久久人人看| 亚洲卡通欧美制服中文| 亚洲第一成年网| 国产一区二区在线观看免费| 91在线porny国产在线看| 91精品国产福利| 国产精品久久久久久久久免费丝袜| 亚洲精品一二三| 国产一区二区三区久久悠悠色av| 大尺度一区二区| 欧美夫妻性生活| 最好看的中文字幕久久| 免费成人在线视频观看| 99re成人精品视频| 欧美成人福利视频| 一区二区成人在线视频| 狠狠色丁香婷综合久久| 欧美日韩亚洲综合在线| 日本一区二区三区四区| 日韩精品电影在线| 91在线国产福利|