资源描述:
《linux 下串口编程基本&流控》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、好了CYGWIN和MAGICC++3.0,运行HELLOWORLD!也OK了,就想搞搞串口,以前LINUX服务器没有办法读写,因为没有设备,所以只是知道打开关闭OK,现在可以试一试了。参考:Linux下串口编程入门 编程指南#include /*标准输入输出定义*/#include /*标准函数库定义*/#include /*Unix标准函数定义*/#include /**/#include /**/#include
2、 /*文件控制定义*/#include /*PPSIX终端控制定义*/#include /*错误号定义*/#include /***@brief 设置串口通信速率*@param fd 类型int 打开串口的文件句柄*@param speed 类型int 串口速度*@return void*/#defineFALSE 0#defineTRUE 1intspeed_arr[]=&leftsign;B38400,B19200,B9600,B4800,B2400,B
3、1200,B300, B38400,B19200,B9600,B4800,B2400,B1200,B300,&rightsign;;intname_arr[]=&leftsign;38400, 19200, 9600, 4800, 2400, 1200, 300, 38400, 19200, 9600,4800,2400,1200, 300,&rightsign;;voidset_speed(intfd,intspeed)&leftsign; int i; int status; structtermios Opt; tcgetattr(fd,&Opt); for(
4、i=0; i5、 &rightsign; tcflush(fd,TCIOFLUSH); &rightsign;&rightsign;/***@brief 设置串口数据位,停止位和效验位*@param fd 类型 int 打开的串口文件句柄**@param databits类型 int数据位 取值为7或者8**@param stopbits类型 int停止位 取值为1或者2**@param parity 类型 int 效验类型取值为N,E,O,,S*/intset_Parity(intfd,intdatabits,intstopbits,intparity)&leftsign; s
6、tructtermiosoptions; if (tcgetattr(fd,&options) != 0) &leftsign; perror("SetupSerial1"); return(FALSE); &rightsign; options.c_cflag&=~CSIZE; switch(databits)/*设置数据位数*/ &leftsign; case7: options.c_cflag&line;=CS7; break; case8: options.c_cflag&line;=CS8; break; default: fprintf(stderr
7、,"Unsupporteddatasize"); return(FALSE); &rightsign; switch(parity) &leftsign; case’n’: case’N’: options.c_cflag&=~PARENB; /*Clearparityenable*/ options.c_iflag&=~INPCK; /*Enableparitychecking*/ break; case’o’: c