windows下第一次打开QextSerialPort串口无法读写问题?
本人写了个程序,运行与windows。当刚开电脑时,运行程序并打开串口,串口打开成功,但是无法读写。如果先用串口调试助手打开串口后,再运行程序并打开串口,串口打开成功并可读写。究竟是什么回事呢?部分代码如下void SystemSet::OpenCom()
{
char temp[16];
//打开串口
if(!(serialPort->isOpen()))
{
//设置串口名
serialPort->setPortName("COM1");
//设置mode
serialPort->setQueryMode(QextSerialPort::EventDriven);
//设置波特率
serialPort->setBaudRate(BAUD57600);
//设置控制
serialPort->setFlowControl(FLOW_OFF);
//设置校验位
serialPort->setParity(PAR_EVEN);
//设置数据位
serialPort->setDataBits(DATA_8);
//设置停止位
serialPort->setStopBits(STOP_1);
//设置读写性
serialPort->open(QIODevice::ReadWrite);
if(serialPort->isOpen())
{
serialPort->flush();
uiSystemSet.serialButton->setText("关闭串口");
connect(serialPort, SIGNAL(readyRead()), SLOT(serialRead()));
}
}
else
{
serialPort->close();
if(!(serialPort->isOpen()))
{
uiSystemSet.serialButton->setText("打开串口");
serialPort->disconnect();
}
}
} --------------------编程问答-------------------- 饿。是不是因为没设置超时? --------------------编程问答-------------------- 监视一下都操作了什么
see link below:
下载地址:
http://download.cnet.com/ComTrace/3000-2218_4-75156892.html?tag=mncol
感觉好别忘了给个review(评论),谢谢! --------------------编程问答-------------------- 我也碰到同样的问题,我用的是QextSerialPort-1.2 win7 环境下,求解? --------------------编程问答--------------------
我也遇到过,先设置好串口信息,再打开串口。 --------------------编程问答-------------------- 我也是一样的问题,请教一下楼主,后来你有没有解决了啊? --------------------编程问答--------------------
去QextSerialPort仓库中下载最新的源码即可,或者你等 QextSerialPort-1.2RC 源码包 --------------------编程问答-------------------- 我也遇到过,在serialPort->open(QIODevice::ReadWrite);之后在设置端口就好了。
void SystemSet::OpenCom()
{
char temp[16];
//打开串口
if(!(serialPort->isOpen()))
{
//设置串口名
serialPort->setPortName("COM1");
//设置读写性
serialPort->open(QIODevice::ReadWrite);
//设置mode
serialPort->setQueryMode(QextSerialPort::EventDriven);
//设置波特率
serialPort->setBaudRate(BAUD57600);
//设置控制
serialPort->setFlowControl(FLOW_OFF);
//设置校验位
serialPort->setParity(PAR_EVEN);
//设置数据位
serialPort->setDataBits(DATA_8);
//设置停止位
serialPort->setStopBits(STOP_1);
if(serialPort->isOpen())
{
serialPort->flush();
uiSystemSet.serialButton->setText("关闭串口");
connect(serialPort, SIGNAL(readyRead()), SLOT(serialRead()));
}
}
else
{
serialPort->close();
if(!(serialPort->isOpen()))
{
uiSystemSet.serialButton->setText("打开串口");
serialPort->disconnect();
}
}
}
补充:移动开发 , Qt