主题 : mini2440串口问题,急。。请高手指点 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 5121
精华: 0
发帖: 10
金钱: 100 两
威望: 100 点
综合积分: 20 分
注册时间: 2009-04-11
最后登录: 2017-09-13
楼主  发表于: 2009-07-24 16:12

 mini2440串口问题,急。。请高手指点

请指点:QT 串口
    
用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  错误
既然第一次能正确发送,说明串口设置是正确的,后面为什么又出现错误呢,请高人指点下,谢谢!

级别: 新手上路
UID: 5500
精华: 0
发帖: 11
金钱: 120 两
威望: 120 点
综合积分: 22 分
注册时间: 2009-04-25
最后登录: 2009-07-25
1楼  发表于: 2009-07-24 16:51
我也在做这方面的事

我通过USB转 串口向MODEN写命令,,,有时一个命令重发好几次。。
级别: 侠客
UID: 9105
精华: 0
发帖: 95
金钱: 755 两
威望: 307 点
综合积分: 190 分
注册时间: 2009-09-17
最后登录: 2017-09-13
2楼  发表于: 2009-10-01 19:06
楼主你代码全吗? 发个全 的上来啊 谢谢你
我想看看你的 OPEN函数
级别: 新手上路
UID: 7800
精华: 0
发帖: 49
金钱: 490 两
威望: 257 点
综合积分: 98 分
注册时间: 2009-07-29
最后登录: 2017-09-13
3楼  发表于: 2009-10-02 09:45
slot中每次都要设置串口吗? 好像不用吧?