前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >终端I/O---ttyS3: 3 inp

终端I/O---ttyS3: 3 inp

作者头像
py3study
发布2020-01-06 15:27:43
9050
发布2020-01-06 15:27:43
举报
文章被收录于专栏:python3python3

没系统地学过终端I/O的控制,只是按照别人的要求配置了一下

背景:gps插在串口3上

#include <stdio.h> #include "time.h" #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <termios.h> int main() {   struct termios opt;   int fd=-1;   int nread;   char buf[1024];   fd=open("/dev/ttyS3" ,O_RDONLY    |O_NONBLOCK); if(fd==-1)    {    printf("open /dev/ttyS3 error\n");    }   tcgetattr(fd,&opt);              //获取终端属性到opt   tcflush(fd,TCIOFLUSH);              //同时刷新收到的数据但是不读,刷新写入的数据但是不传送   cfsetispeed(&opt, B9600);                 //设置输入波特率   cfsetospeed(&opt, B9600);             //设置输出波特率   opt.c_cflag&=~CSIZE;              //(不用     )字符长度掩码。取值为 CS5, CS6, CS7, 或 CS8。   opt.c_cflag |=CS8;              //取值为CS8   opt.c_cflag &= ~PARENB;              //(不用     )允许输出产生奇偶信息以及输入的奇偶校验。   opt.c_iflag &= ~INPCK;              //(不用     )启用输入奇偶检测。   opt.c_cflag &= ~CSTOPB;              //(不用     )设置两个停止位,而不是一个   opt.c_cflag &= ~CRTSCTS;              //(不用     )硬件流控   opt.c_cc[VTIME] = 150;              //非 canonical 模式读时的延时,以十分之一秒为单位   opt.c_cc[VMIN] = 0;                      //非 canonical 模式读的最小字符数   opt.c_lflag    &= ~(ICANON | ECHO) ;              //(不用     )启用标准模式 (canonical mode)允许使用              //特殊字符 EOF, EOL, EOL2, ERASE, KILL, LNEXT, REPRINT,               //和 WERASE,以及按行的缓冲。              //(不用     )回显输入字符。   tcflush(fd,TCIOFLUSH);   tcsetattr(fd,TCSANOW,&opt);              //改变立即发生 while(1)     {         nread = read(fd,buf,1000);         //printf("nread=%d\n",nread);         //if(nread !=-1 )    printf("%s",buf);//打印数据         sleep(2);         memset(buf,0x0,1024);     } if(fd!=-1) close(fd);   return 0; }

我用

  cat /dev/ttyS3

发现输入到串口的数据是对的啊

可是我用上面这个程序去读的时候

出现如下错误啊:

ttyS3: 3 input overrun(s)

ttyS3: 5 input overrun(s)

并且这类问题随程序的执行,一直都慢慢地出来,连绵不绝啊

谁碰到过这个问题,请指教

依旧没有得到解决办法:权益之计,我把arm-linux-2.6内核源码的n_tty.c

611行printk注释掉了,重编内核,就是说,碰到这个警告不让它打印出来

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档