LINUX 串口通讯源码

LINUX 串口通讯源码

ID:47915595

大小:34.50 KB

页数:7页

时间:2019-10-25

LINUX 串口通讯源码_第1页
LINUX 串口通讯源码_第2页
LINUX 串口通讯源码_第3页
LINUX 串口通讯源码_第4页
LINUX 串口通讯源码_第5页
资源描述:

《LINUX 串口通讯源码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、主要函数intopenport(char*Dev)//打开串口intsetport(intfd,intbaud,intdatabits,intstopbits,intparity)//设置串口,波特率,数据位,停止位,校验intreadport(intfd,char*buf,intlen,intmaxwaittime)//读数据,参数为串口,BUF,长度,超时时间intwriteport(intfd,char*buf,intlen)  //发送数据voidclearport(intfd)     

2、 //如果出现数据与规约不符合,可以调用这个函数来刷新串口读写数据 如果有BUG,请大家及时回复给我,EMAIL:41063473@QQ.COM。#include     #include     #include     #include     #include     #include     #include   intopenport(char*De

3、v)    { int fd=open(Dev,O_RDWR

4、O_NOCTTY

5、O_NDELAY);  if(-1==fd)  {     perror("Can''tOpenSerialPort");  return-1;   }  else   returnfd; }       intsetport(intfd,intbaud,intdatabits,intstopbits,intparity){ intbaudrate; struct  termios  newtio;    switch

6、(baud) { case300:  baudrate=B300;  break; case600:  baudrate=B600;  break; case1200:  baudrate=B1200;  break; case2400:  baudrate=B2400;  break; case4800:  baudrate=B4800;  break; case9600:  baudrate=B9600;  break; case19200:  baudrate=B19200;  break;

7、 case38400:  baudrate=B38400;  break; default:  baudrate=B9600;    break; } tcgetattr(fd,&newtio);      bzero(&newtio,sizeof(newtio));     //setting  c_cflag  newtio.c_cflag  &=~CSIZE;      switch(databits)/*设置数据位数*/ {    case7:    newtio.c_cflag

8、=CS7

9、;//7位数据位  break; case8:       newtio.c_cflag

10、=CS8;//8位数据位  break;    default:      newtio.c_cflag

11、=CS8;  break;    } switch(parity)//设置校验 {    case'n': case'N':      newtio.c_cflag&=~PARENB;  /*Clearparityenable*/  newtio.c_iflag&=~INPCK;    /*Enablep

12、aritychecking*/   break;   case'o':    case'O':       newtio.c_cflag

13、=(PARODD

14、PARENB);/*设置为奇效验*/    newtio.c_iflag

15、=INPCK;            /*Disnableparitychecking*/   break;   case'e':   case'E':     newtio.c_cflag

16、=PARENB;    /*Enableparity*/      newtio

17、.c_cflag&=~PARODD;  /*转换为偶效验*/       newtio.c_iflag

18、=INPCK;      /*Disnableparitychecking*/  break; case'S':  case's': /*asnoparity*/       newtio.c_cflag&=~PARENB;  newtio.c_cflag&=~CSTOPB;break;   default:     newtio.c_cflag&=~PARENB;  /*Cle

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。