• 3527阅读
  • 0回复

请指点:QT 串口 [复制链接]

上一主题 下一主题
离线braverywu
 
只看楼主 倒序阅读 楼主  发表于: 2009-07-15
    
用QT在ARM 开发板上进行写串口操作,思路是这样的:当按下串口发送按钮时,对应的slot就执行对串口写的操作,其中slot内是用linux系统的函数直接实现的,简单代码如下:

    bzero( &newtio, sizeof( newtio ) );
    newtio.c_cflag  |=  CLOCAL | CREAD;
    newtio.c_cflag &= ~CSIZE;
    newtio.c_cflag |= CS8;
    newtio.c_cflag |= B9600;
    newtio.c_cflag &= ~PARENB;
    newtio.c_cflag &=  ~CSTOPB;
    cfsetispeed(&newtio, B9600);
    cfsetospeed(&newtio, B9600);
     newtio.c_cc[VTIME]  = 0;
    newtio.c_cc[VMIN] = 1;
     tcflush(fd,TCIOFLUSH);      
      if((tcsetattr(fd,TCSANOW,&newtio))!=0)
        {
        perror("com set error");      
         }
//   以上为对串口的设置
char run[]="\x1b\x40This is a test for printer,I hope this test will be success:) ";
  write(fd,run,(sizeof(run)-1));         //写串口

产生的问题如下:

  第一次按发送按钮时,串口可正常发送数据,但以后再按下时就时不时出现:1 invalid argument   2 inappropriate ioct1 for device  错误
既然第一次能正确发送,说明串口设置是正确的,后面为什么又出现错误呢,请高人指点下,谢谢!




快速回复
限100 字节
 
上一个 下一个