首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

用qserialport类开展串口通信,读不到写入串口的数据

2013-11-13 
用qserialport类进行串口通信,读不到写入串口的数据能够正确打开串口,设置参数,也能够写入,在writebuffer

用qserialport类进行串口通信,读不到写入串口的数据
能够正确打开串口,设置参数,也能够写入,在writebuffer里能够查看到,但是读不了写入的数据。
程序如下


/***************************************************************************************************
 * \brief ouvrir_port_com()
 * ouvrir le port de com chosir, faire le setting de ce port
 * \param
 **************************************************************************************************/
void Widget::ouvrir_port_com()
{
    myCom= new QSerialPort(this);
    myCom->setPortName("COM1");

    bool ouvert=myCom ->open(QIODevice::ReadWrite);
    if(ouvert)
    {
        myCom->setBaudRate(QSerialPort::Baud57600);
        myCom->setDataBits( QSerialPort::Data8);
        myCom->setParity(QSerialPort::NoParity);
        myCom->setStopBits(QSerialPort::OneStop);
        myCom->setFlowControl(QSerialPort::NoFlowControl);
        myCom->setRequestToSend(true);
        myCom->setDataTerminalReady(true);
    }else
    {
        QMessageBox::critical(this, tr("Echec de l'ouverture"), tr("Ce port de com ne peut pas être ouvrire ") + port_com + tr("\n Ce port de com n'est pas dipnible"), QMessageBox::Ok);
        return;
    }

    connect(myCom,SIGNAL(readyRead()),this,SLOT(readCom()));

    send_command();
}
void Widget::send_command()
{
    QString x="OK?";
    myCom->write(x.toLatin1());
}

void Widget::readCom()
{
    QByteArray temp = myCom->readAll();

    ui->textBrowser->insertPlainText(temp);
}



[解决办法]
是不是通信线的问题,那就找找是不是硬件故障
[解决办法]
把断点设到发送去,单步跟踪下,看看有没有发出去,另外串口有没有打开失败,这些都要检查下,如果这些都确认无误,就找硬件原因了,

重点看通信线故障,
[解决办法]
你这需要把串口上的2、3脚连起来,也就是发送和接收脚连起来

热点排行