《LINUX 串口通讯源码》由会员分享,可在线阅读,更多相关《LINUX 串口通讯源码(8页珍藏版)》请在人人文库网上搜索。

1、主要函数int openport(char *Dev) /打开串口int setport(int fd, int baud,int databits,int stopbits,int parity)/设置串口,波特率,数据位,停止位,校验int readport(int fd,char *buf,int len,int maxwaittime)/读数据,参数为串口,BUF,长度,超时时间int writeport(int fd,char *buf,int len)/发送数据void clearport(int fd)/如果出现数据与规约不符合,可以调用这个函数来刷新串口读写数据如果有BUG,请。

2、大家及时回复给我,EMAIL:41063473QQ.COM。#include #include #include #include #include #include #include int openport(char *Dev)intfd = open( Dev, O_RDWR|O_NOCTTY|O_NDELAY );if (-1 = fd) perror(Cant Open Serial Port);return -1;elsereturn fd;精品.int setport(int fd, int baud,int databits,int stopbits,int parity)in。

3、t baudrate;struct termios newtio;switch(baud)case 300:baudrate=B300;break;case 600:baudrate=B600;break;case 1200:baudrate=B1200;break;case 2400:baudrate=B2400;break;case 4800:baudrate=B4800;break;case 9600:baudrate=B9600;break;case 19200:baudrate=B19200;break;case 38400:baudrate=B38400;break;default。

4、 :baudrate=B9600;break;tcgetattr(fd,&newtio);bzero(&newtio,sizeof(newtio);/setting c_cflagnewtio.c_cflag &=CSIZE;switch (databits) /*设置数据位数*/case 7:newtio.c_cflag |= CS7; /7位数据位break;case 8:newtio.c_cflag |= CS8; /8位数据位break;default:newtio.c_cflag |= CS8;break; switch (parity) /设置校验case n:case N:new。

5、tio.c_cflag &= PARENB; /* Clear parity enable */newtio.c_iflag &= INPCK; /* Enable parity checking */break;case o:case O:newtio.c_cflag |= (PARODD | PARENB); /* 设置为奇效验*/newtio.c_iflag |= INPCK; /* Disnable parity checking */break;case e:case E:newtio.c_cflag |= PARENB; /* Enable parity */newtio.c_cf。

6、lag &= PARODD; /* 转换为偶效验*/newtio.c_iflag |= INPCK; /* Disnable parity checking */break;case S:case s: /*as no parity*/newtio.c_cflag &= PARENB;newtio.c_cflag &= CSTOPB;break;default:newtio.c_cflag &= PARENB; /* Clear parity enable */newtio.c_iflag &= INPCK; /* Enable parity checking */break; switch 。

7、(stopbits)/设置停止位case 1:newtio.c_cflag &= CSTOPB; /1break;case 2:newtio.c_cflag |= CSTOPB; /2break;default:newtio.c_cflag &= CSTOPB;break;newtio.c_ccVTIME = 0;newtio.c_ccVMIN = 0;newtio.c_cflag |= (CLOCAL|CREAD);newtio.c_oflag|=OPOST;newtio.c_iflag &=(IXON|IXOFF|IXANY);cfsetispeed(&newtio,baudrate);c。

8、fsetospeed(&newtio,baudrate);tcflush(fd, TCIFLUSH);if (tcsetattr(fd,TCSANOW,&newtio) != 0)perror(SetupSerial 3);return -1;return 0;int readport(int fd,char *buf,int len,int maxwaittime)/读数据,参数为串口,BUF,长度,超时时间int no=0;int rc;int rcnum=len;struct timeval tv;fd_set readfd;tv.tv_sec=maxwaittime/1000;/SEC。

9、ONDtv.tv_usec=maxwaittime%1000*1000;/USECONDFD_ZERO(&readfd);FD_SET(fd,&readfd);rc=select(fd+1,&readfd,NULL,NULL,&tv);if(rc0)while(len)rc=read(fd,&bufno,1);if(rc0)no=no+1;len=len-1;if(no!=rcnum)return -1;/如果收到的长度与期望长度不一样,返回-1return rcnum;/收到长度与期望长度一样,返回长度elsereturn -1;return -1;int writeport(int fd,。

10、char *buf,int len)/发送数据write(fd,buf,len);void clearport(int fd)/如果出现数据与规约不符合,可以调用这个函数来刷新串口读写数据tcflush(fd,TCIOFLUSH);main()精品.int fd,rc,i,ret;unsigned char rbuf256;unsigned char wbuf256=;for(i=0;i0)ret=setport(fd,4800,8,1,o);/设置串口,波特率,数据位,停止位,校验if(ret0)writeport(fd,wbuf,rc);printf(recv:%d/n,rc);for(i=0;irc;i+)printf(%02x ,rbufi);printf(/n);elseprintf(recv none/n);精品.close(fd);如有侵权请联系告知删除,感谢你们的配合!精品。

linux 串口终端源码,LINUX 串口通讯源码相关推荐

  1. linux 控制终端卡,配置通过串口控制linux操作系统的终端

    开始之前,请确认机器有串口(com口, RS232接口),如果没有,那就没有办法达到通过串口控制机器的目的了.当然,也可以额外给机器安装一个带串口的 PCI 模块,然后想办法将模块驱动起来(内核默认能 ...

  2. java即时通讯源码 IM即时通讯源码 IM源码 安卓苹果原生APP源码 带音视频

    基本功能说明及介绍: 客户端:安卓,苹果,pc,web 开发语言: Java OC C# 运行软件:eclipse Java xcode 数据库:mongodb 环境:Linux Centos 7以上 ...

  3. linux超级终端root权限,linux超级终端minicom的使用方法

    ##​minicom的执行## 启动,按ctrl+大A,再按O.出现配置菜单:选serial port setup,进入串口配置 输入A配置串口驱动为/dev/ttyS0 输入E配置速率为115200 ...

  4. Linux连接终端模拟器,为Linux运维推荐9款实用的Linux终端模拟器

    今天小编要跟大家分享的文章是关于为Linux运维推荐9款Linux终端模拟器.Linux终端模拟器是所有人(包括新手或高级用户)的最佳实用工具之一.它允许您使用Linux系统shell并与之交互.终端 ...

  5. linux控制终端关机命令,linux定时关机命令?linux立即关机命令?终端切换界面?windows定时关机和linux定时关机的方法(shut...

    你是否正在寻找关于linux定时关机命令的内容?让我把最完整的东西奉献给你: windows定时关机和linux定时关机的方法(shutdown命令) 作者:佚名 字体:[ ] 来源:互联网 时间:0 ...

  6. linux新终端找回任务,Linux 终端任务后台执行

    在Linux中,如果要让进程在后台运行,一般情况下,我们在命令后面加上&即可,实际上,这样是将命令放入到一个作业队列中了: $ ./test.sh & [1] 17208 $ jobs ...

  7. linux 向终端 发送消息,Linux向不同的连接终端窗口发送消息

    前提 打开一个Linux系统,同时打开两个终端连接,远程和本地都可以 命令 这是查看有哪些终端连接这台机 ps -ef|grep pts/ 器 结果 从上面的结果看出有两个pts客户端连接: 默认pt ...

  8. linux 伪终端原理,探索Linux之 终端模拟器和伪终端交互原理

    写在前面:本人水平有限,不少地方都是本身的理解,若有误导,欢迎指正linux # 终端模拟器指的是在linux桌面环境下运行的仿真终端(以下图)shell # 终端模拟器为啥叫模拟器呢? 由于真正的终 ...

  9. linux 读取终端stdout,【Linux基础】linux下的stdin,stdout和stderr理解

    在Linux下,当一个用户进程被创建的时候,系统会自动为该进程创建三个数据流,也就是题目中所提到的这三个. 1.三个数据流默认是表现在用户终端上的 执行一个shell命令行时通常会自动打开三个标准文件 ...

  10. Linux全能终端,11个Linux终端命令,总有一个让你惊叹!

    通过今天这篇文章我将向大家展示一系列的命令.工具和技巧,我希望一开始就有人告诉我这些,而不是曾在我成长道路上绊住我. 有愿意一起交流的可以加群:790701373,我们一起交流技术,分享资料 1.命令 ...

最新文章

  1. 腾讯 AI Lab副主任俞栋:过去两年基于深度学习的声学模型进展
  2. O(n^2) 级别的排序算法
  3. bat 域 本机管理员密码_域渗透——Local Administrator Password Solution
  4. 蓝桥分酒java_[蓝桥杯][java]海盗分酒
  5. Java:异常的概念及分类、异常的处理、异常抛出及自定义异常
  6. mysql修改语句_序言:MySQL与Navicat安装Tips
  7. HTTP中302与301的区别以及在ASP.NET中如何实现
  8. linux下keytool生成证书_keytool命令 – 密钥和证书管理工具
  9. hitool java_海思HiTool-STB-5.0.27最新版工具
  10. 一维码,二维码,com.google.zxing
  11. 分享灵动微MM32F3270微控制器的音频类产品参考方案
  12. Racket 8.3下载安装(Win10)
  13. 丁磊:顶尖技术人才的特质,是热爱与专注!
  14. 我对计算机网络技术的理解,计算机网络技术教学总结
  15. AspectJ介绍(一)
  16. HTML转换为PDF介绍
  17. 1.Arduino入门项目1-超声波测距仪(附项目源码、库文件、电路图、材料清单等资料)
  18. SSH原理与运用:远程登录
  19. 益聚星荣:UP主捡块石头搓出个CPU?恕我直言,人类做不到
  20. 五款交互设计APP界面欣赏

热门文章

  1. 下一站,北京-欢乐谷
  2. vue.js ajax怎么用,vue.js中ajax的使用
  3. 2D曲线插值拟合基础
  4. c语言putchar_C语言写一个小程序,胖胖的爱心桃
  5. qt之qthread的使用
  6. byte数组转为string 去掉转义符_三道简单的 String 面试题干趴下了 n 多大牛!
  7. html中字体 楷体_HTML字体集锦-
  8. Qt::QWidget 无默认标题栏边框的拖拽修改大小方式
  9. vs编译c++代码脚本
  10. Day2:C语言学习2