• 6915阅读
  • 12回复

qextserialport串口编程问题,大侠帮忙看下 [复制链接]

上一主题 下一主题
离线slbbls
 
只看楼主 倒序阅读 楼主  发表于: 2010-01-04
我用的是qextserialport-1.1.tar.gz,然后把要的文件加到我的工程里,
一切都很顺利,但在板子上调试时串口就是收不到数据
大侠帮忙看看:
不知道程序有没有写错
    //定义一个结构体,用来存放串口各个参数
    struct PortSettings myComSetting = {BAUD9600,DATA_8,PAR_NONE,STOP_1,FLOW_OFF,0,500};
    //定义串口对象,并传递参数,在构造函数里对其进行初始化
    myCom = new Posix_QextSerialPort("/dev/ttySAC1",myComSetting);
    //以可读写方式打开串口
    myCom ->open(QIODevice::ReadWrite);
    //信号和槽函数关联,当串口缓冲区有数据时,进行读串口操作
    connect(myCom,SIGNAL(readyRead()),this,SLOT(readcom()));


在readcom()下
    QByteArray temp = myCom->readAll();
    ui->textBrowser->insertPlainText(temp);

我发现向串口发数据根本不会到readcom下,不知道哪里错了
离线slbbls
只看该作者 1楼 发表于: 2010-01-05
早上起来顶顶,等大侠们来解答
离线fjutwx
只看该作者 2楼 发表于: 2010-01-05
楼主是用linux的系统吗
离线slbbls
只看该作者 3楼 发表于: 2010-01-05
是的
离线fjutwx
只看该作者 4楼 发表于: 2010-01-05
posix版本的qextserialport不支持readyread()信号的,你查看下源码就知道了,需要自己修改的,
离线slbbls
只看该作者 5楼 发表于: 2010-01-05
引用第4楼fjutwx于2010-01-05 10:18发表的  :
posix版本的qextserialport不支持readyread()信号的,你查看下源码就知道了,需要自己修改的,


谢谢解答,那我该怎么判断串口是否有数据,该怎么修改啊,或者大侠有改好的发我一份,不胜感激 zjut200809@163.com
离线fjutwx
只看该作者 6楼 发表于: 2010-01-05
你的串口需要做到什么时间级的
大概多少时间接受一个字节数据
离线slbbls
只看该作者 7楼 发表于: 2010-01-05
差不多每秒接受一次
离线fjutwx
只看该作者 8楼 发表于: 2010-01-05
那直接用定时器进行定时查询就可以了,不要用readyread()信号
离线slbbls
只看该作者 9楼 发表于: 2010-01-05
定时器查询时可以,但感觉这样就没必要用这个类了
离线fjutwx
只看该作者 10楼 发表于: 2010-01-05
readyread()使用的也是查询的办法的,只不过不是在定时器timeout时查询,而需要自己开个线程进行查询,这种办法在接受数据时间间隔不是很短的时候不建议使用,比较占资源的
离线mini6410

只看该作者 11楼 发表于: 2017-03-01
你这里面的readAll函数在哪里定义的啊?
离线lixiaoxin

只看该作者 12楼 发表于: 2017-03-02
直接用QSerialPort不就行了
快速回复
限100 字节
 
上一个 下一个