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

一个linxu下读串口的程序问题

    来源: 互联网  发布时间:2016-08-28

    本文导语:  大家好,我编写一个读取ttyUBS0的linux程序时候遇到了问题。事情的经过是这样子的。我用一台pc上装xp,上面使用一个串口调试工具,不停的通过com1向我的笔记本(装的是linux系统)的ttyUBS0口发数据,我在linux下编写...

大家好,我编写一个读取ttyUBS0的linux程序时候遇到了问题。事情的经过是这样子的。我用一台pc上装xp,上面使用一个串口调试工具,不停的通过com1向我的笔记本(装的是linux系统)的ttyUBS0口发数据,我在linux下编写一个程序,要读这个数据,可是怎么也读不到。串口调试工具配置为8,N,1模式,不知道是出了什么问题。
#include 
#include  /*Unix标准函数定义*/
#include  /**/
#include  /**/
#include  /*文件控制定义*/
#include  /*PPSIX终端控制定义*/
#include  /*错误号定义*/
#include 
#include 

int main()
{
    int fd,readnum;
    char *dev="/dev/ttyUSB0",recv[100];
    struct termios opt,oldopt;

    fd = open( dev, O_RDWR ); 

    tcgetattr( fd,&oldopt);

    tcgetattr( fd,&opt);
    cfsetispeed(&opt, B115200);//9600
    cfsetospeed(&opt, B115200);

    opt.c_cflag &= ~PARENB; //N
    opt.c_cflag &= ~INPCK;
    opt.c_cflag &= ~CSTOPB;//1
    opt.c_cflag &= ~CSIZE;
    opt.c_cflag |= CS8; //8

    opt.c_iflag &= ~(IXON | IXOFF | IXANY);

    opt.c_cc[VTIME] = 0; 
    opt.c_cc[VMIN] = 0; 

    opt.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); /*Input*/
    opt.c_oflag &= ~OPOST; /*Output*/

    tcflush(fd, TCIOFLUSH);
    tcsetattr(fd, TCSANOW, &opt);

    while(1)
    {
        bzero(recv,100);
        //printf("hahahan");
        while((readnum = read(fd,recv,100))>0)
        {
            printf("%sn",recv);
        }
    }

    tcflush(fd, TCIOFLUSH);
    tcsetattr(fd, TCSANOW, &oldopt); 
    close(fd);
}
有经验的高手来指点下吧。

|
 /*设置波特率*/
    switch( nSpeed )
    {
        case 2400:
            cfsetispeed(&newtio, B2400);
            cfsetospeed(&newtio, B2400);
        break;
        case 4800:
            cfsetispeed(&newtio, B4800);
            cfsetospeed(&newtio, B4800);
        break;
        case 9600:
            cfsetispeed(&newtio, B9600);
            cfsetospeed(&newtio, B9600);
        break;
        case 115200:
            cfsetispeed(&newtio, B115200);
            cfsetospeed(&newtio, B115200);
        break;
        case 460800:
            cfsetispeed(&newtio, B460800);
            cfsetospeed(&newtio, B460800);
        break;
        default:
            cfsetispeed(&newtio, B9600);
            cfsetospeed(&newtio, B9600);
        break;
    }
拨特率不匹配,XP是9600,LINUX是cfsetispeed(&opt, B115200)
错了B115200

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linxu编程入门问题
  • 编译Linxu内核的问题
  • linxu中关于磁盘分割的问题
  • 高手救救我啊~~LINXU安装问题,在线等!!!
  • Linxu中FIFO问题
  • 太菜的问题:linxu和UNXI的区别是什么,WIN98上的软件在LINUX上也可以用么!
  • linxu的问题(在线等待)
  • Linxu makefile小问题
  • 下载的linxu如何使用md5文件进行验证?
  • 使用SecureCRT连接到Linxu后,中断的汉字乱码,怎么解决?
  • 有没有在WINDOWS下专门用来看LINXU内核源代码的软件?
  • 请问在安装Linxu时提示12号错误是怎么回事啊?
  • 在linxu下有图形化的ftp客户端工具么?
  • linxu-如何拷贝指定类型的文件到指定的目录下呢?
  • Linxu下什么C++工具好用
  • php iis7站长之家
  • 如何实现在2G HD空间下装 linxu+ftp server+ssh
  • 在LINXU下是否有JAVA与PACAL编译的工具
  • 怎样在LINXU下编译修改后的含有多个C文件的开源软件?有什么好的工具?需要配置哪些文件?
  • 有人对fc下的xen了解多深?为什么大家都要在win32的vmare下装linux,不在linxu下的xen装windows
  • linxu下的文件属性为0755,022各是什么意思?
  • 关于互斥量类型属性,在LINXU系统中为什么总是编译不通过?
  • Linxu初学者、Linux爱好者自己的发行版


  • 站内导航:


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

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

    浙ICP备11055608号-3