读书人

用qserialport类开展串口通信读不到

发布时间: 2013-11-13 14:04:18 作者: rapoo

用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脚连起来,也就是发送和接收脚连起来

读书人网 >QT开发

热点推荐