首页| 论坛| 消息

标题:qt extserial 串口接受数据问题
作者:onelook
日期:2013-03-08 13:02
内容:

运行extserial 自带的 event例子
我在例外一台电脑打开串口调试工具,输入 abcde 然后点发送,但是到了qt接收这里,每个字符都会触发一个事件。
如果我要一次收到完整的 abced 应该怎么改?
#include "PortListener.h"
#include
PortListener::PortListener(const QString &portName)
{
qDebug() port = new QextSerialPort(portName, QextSerialPort::EventDriven);
port->setBaudRate(BAUD115200);
port->setFlowControl(FLOW_OFF);
port->setParity(PAR_NONE);
port->setDataBits(DATA_8);
port->setStopBits(STOP_1);
port->setTimeout(50);
if (port->open(QIODevice::ReadWrite) == true) {
connect(port, SIGNAL(readyRead()), this, SLOT(onReadyRead()));
connect(port, SIGNAL(dsrChanged(bool)), this, SLOT(onDsrChanged(bool)));
if (!(port->lineStatus() & LS_DSR))
qDebug() readAll();
qDebu ..


#1 [pxiao_xiao 03-08 16:46]
onReadyRead()
里加入如下过滤
if (port->bytesAvailable() > num) // num为字符个数
{
QByteArray temp = port->readAll(); //读取数据
}

回复 发表
主题 版块