当前位置: 首页 > news >正文

陕西城乡建设网站淘客推广软件

陕西城乡建设网站,淘客推广软件,中小企业网站制作多少钱,仿系统之家网站源码以前跟着做过VxWorks的开发#xff0c;主要通信方式是串口#xff0c;因为底层BSP包已经做好了#xff0c;串口通信非常简单。后来接触Linux#xff0c;在一块OK6410上跑Linux串口通信#xff0c;才发现原来天真的以为甚是简单的串口变得如此的不简单。 #include ter…以前跟着做过VxWorks的开发主要通信方式是串口因为底层BSP包已经做好了串口通信非常简单。后来接触Linux在一块OK6410上跑Linux串口通信才发现原来天真的以为甚是简单的串口变得如此的不简单。 #include termios.h 1、串口的操作 1.1打开fd open(/dev/ttySAC1, O_RDWR | O_NOCTTY | O_NDELAY);               O_RDWR 读写方式打开               O_NOCTTY 不允许进程管理串口不太理解一般都选上               O_NDELAY 非阻塞默认为阻塞打开后也可以使用fcntl()重新设置 1.2写入n write(fd, linux, 5);                 n实际写入字节数 1.3读取res read(fd,buf,len);                  res 读取的字节数 1.4设置fcntl(fd, F_SETFL, FNDELAY); //非阻塞                  fcntl(fd, F_SETFL, 0); // 阻塞 1.5关闭close(fd); 2、串口配置 struct termios options;  // 串口配置结构体 tcgetattr(fd,options); //获取当前设置 bzero(options,sizeof(options)); options.c_cflag  | B115200 | CLOCAL | CREAD; // 设置波特率本地连接接收使能 options.c_cflag ~CSIZE; //屏蔽数据位 options.c_cflag  | CS8; // 数据位为 8 CS7 for 7 options.c_cflag ~CSTOPB; // 一位停止位 两位停止为 | CSTOPB options.c_cflag ~PARENB; // 无校验  //options.c_cflag | PARENB; //有校验 //options.c_cflag ~PARODD // 偶校验 //options.c_cflag |  PARODD    // 奇校验 options.c_cc[VTIME] 0; // 等待时间单位百毫秒 读。后有详细说明 options.c_cc[VMIN] 0; // 最小字节数 读。后有详细说明 tcflush(fd, TCIOFLUSH); // TCIFLUSH刷清输入队列。                                        TCOFLUSH刷清输出队列。                                         TCIOFLUSH刷清输入、输出队列。 tcsetattr(fd, TCSANOW, options); // TCSANOW立即生效                                                         TCSADRAINWait until everything has been transmitted                                                         TCSAFLUSHFlush input and output buffers and make the change 3、VTIME 和  VMIN VTIME  定义要求等待的零到几百毫秒的值(通常是一个8位的unsigned char变量)。 VMIN 定义了要求等待的最小字节数, 这个字节数可能是0。 只有设置为阻塞时这两个参数才有效仅针对于读操作。 说起来比较复杂举个例子吧设置为阻塞状态写操作未进行实验这里仅讨论读操作 read(fd,buf,8); // 读串口 3.1 options.c_cc[VTIME] 0; options.c_cc[VMIN] 0; VMIN 0当缓冲区字节数 0 时进行读操作实际上这时读串口操作并未被阻塞因为条件始终被满足。 3.2 options.c_cc[VTIME] 0; options.c_cc[VMIN] 1; VMIN 1当缓冲区字节数  1 时进行读操作当没有数据时读串口操作被阻塞。 3.3 options.c_cc[VTIME] 0; options.c_cc[VMIN] 4; VMIN 4当缓冲区字节数  4 时进行读操作否则读串口操作被阻塞。每次读出的最大字节数由read函数中第三个参数决定。直到缓冲区剩下的数据 read 第三个参数 并且 4 如果这时read第三参数为 1 则进行4次读操作直至读完缓冲区如read第三参数为2连续进行读操作直至缓冲区空或还剩一个字符。没有设置VTIME剩下的字符没有确定的期限直到下次满足读条件的时候才被读出。 ----------------------------------考虑VTIME----------------------------- 3.4 options.c_cc[VTIME] 10; //单位百毫秒 options.c_cc[VMIN] 4; 同3.3的区别就是没满足条件或读缓冲区中剩下的数据会在1秒10百毫秒后读出。另外特别注意的是当设置VTIME后如果read第三个参数小于VMIN 将会将VMIN 修改为read的第三个参数即使用read(fd,buf,2);以上设置变为 options.c_cc[VTIME] 10; options.c_cc[VMIN] 2;
http://www.pierceye.com/news/413885/

相关文章:

  • 专门做推广的网站吗宿迁房价2023年最新房价
  • 0基础12天精通网站建设网站建设 全网推广
  • 东莞网站营销推广公司移动应用开发案例
  • 妇科医院网站建设怎么做网站建设培训心得体会
  • 网站建设 管理正能量网站入口地址
  • 做网站没有创意Wordpress国际收款
  • 网站推广关键词工具wap网站分享到微信
  • 哪个网站可以给图片做链接做网站的公司在哪
  • 搬瓦工可以长期做网站广告制作开票大类是什么
  • 高级网站开发工信部小企业门户网站建设
  • 网站建站知识秦皇岛汽车网站制作
  • 建站之星极速版app开发需求
  • .net域名可以做银行网站吗做网站用模版
  • 嘉兴市平湖市建设局网站品牌设计公司 知乎
  • jfinal网站开发模板app开发网站
  • 成都和奇乐网站建设公司怎么样研发网站要多久
  • 蓬莱做网站北京宣传片
  • 网站建设 部署与发布wordpress多说插件
  • 池州做网站的公司哪里有网站开发技术
  • 网站建设内容策划外贸软件排行榜前十名
  • 微信官方网站公众平台郸城建设银行网站
  • .net 微信网站开发免费网站建设制作
  • 做网站需要啥备案之类的嘛传统的网站开发模式
  • 杭州网站seo优化最适合女生的专业排名
  • 广州市酒店网站设计交易平台网站怎么做
  • 江苏省示范校建设专题网站网站网页制作公司网站
  • 前海艾爻网站 建设磐安住房和城乡建设部网站
  • 网站程序h5电商seo是什么意思啊
  • 网站赚钱做跨境电商要什么费用
  • wordpress修改文件简单的seo网站优化排名