当前位置:  技术问答>linux和unix

linux 下串口 问题, read 不是返回-1 就是不返回

    来源: 互联网  发布时间:2016-03-07

    本文导语:  设置的部分如下, 尝试了很多设置组合了, 就是不能用, read不返回, 或者就返回-1 下面的是返回-1的, 请教高人给看看 fd = open(comname,O_RDWR|O_NOCTTY|O_NDELAY); if(fd == -1) { printf("open_port: Unable to open %s",co...

设置的部分如下, 尝试了很多设置组合了, 就是不能用, read不返回, 或者就返回-1
下面的是返回-1的, 请教高人给看看


fd = open(comname,O_RDWR|O_NOCTTY|O_NDELAY);
if(fd == -1)
{
printf("open_port: Unable to open %s",comname );
return 1;
}
else
{
//fcntl(fd,F_SETFL,FNDELAY);
//fcntl(fd,F_SETOWN, getpid());
 //fcntl(fd, F_SETFL, FASYNC);  
}
struct termios options;
//get current options for com port
tcgetattr(fd,&options);

// User Definable

switch (Rs232.iBaud) {
case 300:
cfsetispeed(&options,B300);
cfsetospeed(&options,B300);
break;
case 1200:
cfsetispeed(&options,B1200);
cfsetospeed(&options,B1200);
break;
case 2400:
cfsetispeed(&options,B2400);
cfsetospeed(&options,B2400);
break;
case 4800:
cfsetispeed(&options,B4800);
cfsetospeed(&options,B4800);
break;
case 9600:
cfsetispeed(&options,B9600);
cfsetospeed(&options,B9600);
break;
case 19200:

cfsetispeed(&options,B19200);
cfsetospeed(&options,B19200);
break;
case 38400:
cfsetispeed(&options,B38400);
cfsetospeed(&options,B38400);
break;
case 57600:
cfsetispeed(&options,B57600);
cfsetospeed(&options,B57600);
break;
case 115200:
cfsetispeed(&options,B115200);
cfsetospeed(&options,B115200);
break;
default:
cfsetispeed(&options,B9600);
cfsetospeed(&options,B9600);
break;
} // switch

//Enable the receiver and set local mode
//options.c_cflag &= (CLOCAL | CREAD);
//Support 8N1 only in linux version
/*
options.c_cflag &= ~PARENB;
options.c_cflag &= ~CSTOPB;
options.c_cflag &= ~CSIZE;
options.c_cflag &= CS8;
*/
options.c_iflag = 0;
 
    options.c_lflag = 0;
options.c_oflag = 0; 
    //options.c_cc[VTIME]     =     0;                
    //options.c_cc[VMIN]     =     255;      
    options.c_cc[VINTR] = 0;/**//*Ctrl-c*/
options.c_cc[VQUIT] =0;/**//*Ctrl-*/
options.c_cc[VERASE] = 0;/**//*del*/
options.c_cc[VKILL]=0;/**//*@*/
options.c_cc[VEOF]=0;/**//*Ctrl-d*/
options.c_cc[VTIME]=1;/**//**/
options.c_cc[VMIN]=0;/**//**/
options.c_cc[VSWTC]=0;/**//*''*/
options.c_cc[VSTART]=0;/**//*Ctrl-q*/
options.c_cc[VSTOP]=0;/**//*Ctrl-s*/
options.c_cc[VSUSP]=0;/**//*Ctrl-z*/
options.c_cc[VEOL]=0;/**//*''*/
options.c_cc[VREPRINT]=0;/**//*Ctrl-r*/
options.c_cc[VDISCARD]=0;/**//*Ctrl-u*/
options.c_cc[VWERASE]=0;/**//*Ctrl-w*/
options.c_cc[VLNEXT]=0;/**//*Ctrl-v*/
options.c_cc[VEOL2]=0;/**//*''*/
    //tcflush(fd, TCIFLUSH);     
//set the new options for the port

if(tcsetattr(fd,TCSANOW,&options) 

    
 
 

您可能感兴趣的文章:

  • linux c编程:怎么从键盘只读取一个字符就返回,不要回车后才返回
  • 当close(socket)时,为什么linux下slect不返回而windows下就返回??????????
  • linux串口读取read函数始终返回值为1,没有返回读到的字符数
  • linux 下 system() 返回值--续
  • 请教:在Linux中如何判断tar的返回值?
  • linux下如何显示一个命令的返回值!(急急)
  • 为何我windows下面send 成功了。 。。但是linux的recv确返回 0
  • linux 下 system() 返回值
  • 加急!!linux下怎么实现ping。并且ping不到的时候返回错误信息
  • 在linux嵌入汇编,如何将寄存器的值返回,或传给变量???????????
  • linux shell编程 如何把命令返回值赋给字符串
  • linux 函数返回值很奇怪 pthread_getspecific(key)
  • linux下system函数调用shell命令后,怎样让主进程不等子进程返回,接着执行(在线)?
  • snmp中的执行linux系统命令如uname的函数,其返回的结果怎么得到啊????
  • 请教高手,linux下使用libusb_submit_transfer,返回-1,errno = 16,如何解决?
  • linux c socket http编程 返回http消息体出错!
  • 我在ie里输入一个链接,可以得到正确的返回。在linux下的lynx就不行了。有没有别的办法?
  • 在Linux上用C语言编写的函数里面申请了一块内存,并且返回这块内存,最终它需要释放吗?
  • linux open 字符设备返回错误
  • 在Linux系统上recv返回错误,通过errno得到的错误消息为"Interrupted system call"
  • 在windows中的VMware装了个linux,主板有两个串口,能做windows和linux的串口通信测试么,怎么测试这两个串口在linux是有效
  • linux下几个设备通过串口串行连接,如何协调各串口发送数据
  • Linux 中用java语言写串口程序,提示找不到串口
  • 高分求助:我笔记本没有串口,在linux下要和一个串口设备连,怎么办?
  • 关于linux串口通信中写串口的问题
  • 在虚拟Linux系统下能进行串口通讯吗?最好给个串口通讯的代码!谢谢!
  • linux下串口发送数据用串口精灵接受不到或为全零
  • 嵌入式linux,串口初始化时,无法设置串口属性
  • linux串口驱动该怎么写
  • linux下如何清空串口的输入输出缓存
  • linux下怎么监控串口?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 哪里有<<linux入门>>电子版,<<linux手册>>电子版下载,我好想要他们啊,就是找不到啊....惭愧
  • linux内核编程,具体指什么,是不是就是驱动开发 ?
  • 我早就听说LINUX大名就是找不到下载的地方!!!
  • 有没有这样的开发工具,在window编辑运行.然后程序放到linux下直接可以执行了.就是在win下提供一个linux虚拟机.
  • windows下,用虚拟机装linux怎么总是说什么kill init就是无法运行,有谁知道阿
  • Linux下的编程指的就是Shell编程吗?
  • 请问如何清掉linux的操作命令记录?就是按上下键不能查看以前执行的命令,谢谢
  • linux下如何禁用usb端口呢,就是插上u盘,系统不反应?
  • 各位大侠帮忙,linux下面有类似 GetTickcount 的函数吗?就是得到从开机到当前的滴答(time tick)值。谢谢啦
  • 求达人指教: 很简单的linux脚本,可是就是找不到问题在哪
  • linux 里面tar参数正确,可是就是解不了文件,怎么回事呢
  • 请问在WINDOWS2000下怎么访问LINUX文件,挂装系统怎么就是不行?
  • 小弟刚装了中软的Linux3.0,感觉还不错,就是声卡驱动不知道怎么装!
  • 用过linux下的raidtools来mkraid磁盘镜像的请进,就是用软件实现raid1的
  • telnet,xinetd服务都已打开,就是无法用别的电脑telnet到我的LINUX
  • shell是不是就是linux的命令?
  • 为何我的Linux 不能正常上网,通过system tools --> network --> 中的IP 设置后,但就是ping 不通
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • 国外linux内核相关的社区,哪些比较好,就是回复快,高手多的那种
  • 有人在LINUX下用过CDMA1x 网卡么?直接就是插在PCMIA上的那种,不关USB的事,50分求助!
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • linux命令大全详细分类介绍及常用linux命令文档手册下载


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3