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

关于串口程序的问题

    来源: 互联网  发布时间:2016-11-15

    本文导语:      最近要做个串口通信程序,由linux通过usb转串口向网关设备发送0xffff474d,就能收到网关采集到的数据,在windows和linux的串口调试助手都可以看到能收到数据,可是我自己写的程序确怎么都读不出来,不过我运行...

    最近要做个串口通信程序,由linux通过usb转串口向网关设备发送0xffff474d,就能收到网关采集到的数据,在windows和linux的串口调试助手都可以看到能收到数据,可是我自己写的程序确怎么都读不出来,不过我运行自己的程序时确在调试助手里看到能读的数据,请问我读取的部分哪里出了问题呢?以下是我的程序,麻烦高手给分析下,多谢了!
#include     
#include      
#include       
#include     
#include     
#include      
#include     
#include     
#include     
#include      


main()
{
    int fd;
    int i,ret;
    int readcount;
    int n = 0;  
    FILE* fp = NULL;
    struct timeval tv;
fd_set rdfds;
  
    if((fp=fopen("/dev/ttyUSB0","rb+"))==NULL)
    {
        perror("error");
        return -1;
    }
    setbuf(fp,NULL);
    
    
    fd = open("/dev/ttyUSB0", O_RDWR | O_NOCTTY | O_NONBLOCK);    //默认为阻塞读方式
    if(fd == -1)
    {
        perror("open serial n");
        exit(0);
    }
    
struct termios opt,old_termios; 
tcgetattr(fd,&old_termios);
bzero(&opt,sizeof(opt));

     
    cfsetispeed(&opt, B38400);
    cfsetospeed(&opt, B38400);
    
    
    opt.c_cflag |= (CLOCAL | CREAD);
    opt.c_cflag &= ~CSIZE;           //屏蔽字符大小位
    opt.c_cflag |= CS8;              //使用8位数据位
    opt.c_cflag &= ~PARENB;     
    opt.c_cflag &= ~INPCK;      //无奇偶校验
    opt.c_cflag &= ~CSTOPB;     //1位停止位
    opt.c_cflag &= ~CRTSCTS;
    opt.c_cflag &= ~(IXON | IXOFF | IXANY); //无流量控制
        
    opt.c_iflag &= ~(INLCR|ICRNL|BRKINT|IXON);
    opt.c_lflag &= ~(ECHONL|ECHO|IEXTEN|ISIG|ICANON);
    opt.c_oflag &= ~OPOST;

   

    tcflush(fd, TCIOFLUSH);
    opt.c_cc[VTIME] = 150;
    opt.c_cc[VMIN] = 0;
 
    
    
    if(tcsetattr(fd, TCSANOW, &opt) != 0)
    {
        perror("serial error");
        return -1;
    }
printf("configure completen");
    printf("start send and receive datan");
  
    while(1)
    {    
        char read_buf[16];
        char write_buf[5];
bzero(read_buf,16);
bzero(write_buf,4);
write_buf[0]=255;
        write_buf[1]=255;
        write_buf[2]=71;
write_buf[3]=77;
write_buf[4]='';

      
        for(i=0;i

    
 
 

您可能感兴趣的文章:

  • Linux 中用java语言写串口程序,提示找不到串口
  • unix 下c写的串口程序调试问题!高手请进 !!!
  • 开源串口通信程序 linucom
  • 请问,那位高手研究过linux下的串口驱动程序?
  • 关于C编写的串口程序的问题?
  • linux下观察串口的程序是哪个, 是终端吗.
  • 如何用c编写一串口通信程序呢?绝对给分!
  • awjx帮帮忙!~~~关于用QT做的有图形界面的串口通信程序
  • Linux 串口程序怎么清空缓冲区?
  • 用java可以串口通信方面的程序吗?
  • 怎么在LINUX下写串口程序?
  • Qt下串口通讯程序请教
  • 求一linux下串口中断的程序
  • linux下,要实现两个程序共享同一个串口,该怎么设置参数?谢谢
  • 请问谁做过在linux下用java开发串口通信程序,所用第三方jar包是rxtx
  • linux串口程序可以发送数据,但是不能接受数据?谁知道原因?
  • 通过串口下载后的程序如何执行?
  • 谁会linux下串口读写的C程序?
  • 哪位有Linux的串口测试程序?(多谢)
  • 串口应用程序,当对方发送大量的数据时,本方的数据无法发出。对方停止发送,本方的数据仍然无法发出。不知道是什么原因。
  • 关于linux串口通信中写串口的问题
  • vmware 上 linux 串口问题
  • 请教一个linux串口通讯问题?
  • linux下串口通信的问题
  • 板间串口通信问题
  • 扩展的串口卡上的串口操作的问题
  • 急!急!急!急!急! liux 串口问题
  • 最棘手一种串口问题。请教高手。在线等
  • 在线等待,求助LINUX下串口问题
  • 急了急了:串口read函数问题!
  • 串口配置问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在windows中的VMware装了个linux,主板有两个串口,能做windows和linux的串口通信测试么,怎么测试这两个串口在linux是有效
  • linux下几个设备通过串口串行连接,如何协调各串口发送数据
  • 散分100,求解串口键盘和串口鼠标驱动
  • 高分求助:我笔记本没有串口,在linux下要和一个串口设备连,怎么办?
  • 开发板串口与实际内核中的串口文件的对应关系怎么回事?谢谢帮忙
  • 怎么判断串口已经收到数据,并及时读出?怎么判断串口已经将写入的数据发送完毕?
  • 工控机有6个串口,但用光盘安装debian6.05,在dev中只找到4个串口,如何解决。
  • linux下串口发送数据用串口精灵接受不到或为全零
  • 在虚拟Linux系统下能进行串口通讯吗?最好给个串口通讯的代码!谢谢!
  • 要加多个串口,怎么分别指定他们的driver_name和dev_name以示区别各个串口?
  • 工控机上用光盘安装debian6.05,硬件上有6个串口,但是软件上即dev中只有4个串口,如何解决。
  • 嵌入式linux,串口初始化时,无法设置串口属性
  • 请教串口通信的编程
  • 请问如何以独占的方式打开串口
  • linux串口驱动该怎么写
  • 虚拟串口怎么读数据? 请有 串口 或者 usb 驱动经验的高手指点
  • linux下如何清空串口的输入输出缓存
  • linux下怎么监控串口?
  • u-boot中处理串口通讯的源码在哪?
  • 求助达人,USB转串口是否遇到过多台设备接入机器,串口冲突?


  • 站内导航:


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

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

    浙ICP备11055608号-3