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

Qt串口能收不能发,是什么原因?解决思路

2013-01-25 
Qt串口能收不能发,是什么原因?把串口的2、3反接模拟。一个串口在自己写的程序中代开,另一个用串口调试助手打

Qt串口能收不能发,是什么原因?
把串口的2、3反接模拟。一个串口在自己写的程序中代开,另一个用串口调试助手打开。

相关代码如下:   
 myCom = new QextSerialPort;
    timer = new QTimer;
    connect(timer,SIGNAL(timeout()),this,SLOT(readCom()));
    myCom->setPortName("com1");
    myCom->setBaudRate(BAUD9600);
    myCom->setDataBits(DATA_8);
    myCom->setStopBits(STOP_1);
    myCom->setParity(PAR_NONE);
    myCom->setFlowControl(FLOW_OFF);
    myCom->setTimeout(20);
    myCom->setQueryMode(QextSerialPort::Polling);
    if(myCom->open(QIODevice::ReadWrite))
    {
        timer->start(20);
    }else
    {
        qDebug()<<"COM1 open error!";
    }


void UPS_Com::readCom()
{
    if(myCom->bytesAvailable()>0)
    {
        QByteArray data = myCom->read(1);
        if(*data.data()>='0'&&*data.data()<='6')
            {
                qDebug()<<"has read"<<data;
                *data.data() = 0xcc;
                myCom->write(data);
            }
    }
}

运行结果是
    能收不能发。myCOm->write(data);没有结果。
但是两个串口都用串口调试助手打开,就没有一点问题,说明还是我的程序有问题。求指点///
[解决办法]
将2.3引脚短接了,是否有信号?没有的话,可能就有问题了

热点排行