windows下第一次打开QextSerialPort串口无法读写问题?

jasonxzh 2010-07-30 10:18:09
本人写了个程序,运行与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();
}
}
}
...全文
540 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Anthony76 2012-12-22
  • 打赏
  • 举报
回复
我也遇到过,在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(); } } }
dbzhang800 2012-05-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

我也是一样的问题,请教一下楼主,后来你有没有解决了啊?
[/Quote]
去QextSerialPort仓库中下载最新的源码即可,或者你等 QextSerialPort-1.2RC 源码包
xiaozhuangky 2012-05-09
  • 打赏
  • 举报
回复
我也是一样的问题,请教一下楼主,后来你有没有解决了啊?
Anitee1 2011-12-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hanteryubw 的回复:]

我也碰到同样的问题,我用的是QextSerialPort-1.2 win7 环境下,求解?
[/Quote]

我也遇到过,先设置好串口信息,再打开串口。
hanteryubw 2011-12-10
  • 打赏
  • 举报
回复
我也碰到同样的问题,我用的是QextSerialPort-1.2 win7 环境下,求解?
gdtyy 2010-08-02
  • 打赏
  • 举报
回复
监视一下都操作了什么

see link below:

下载地址:
http://download.cnet.com/ComTrace/3000-2218_4-75156892.html?tag=mncol

感觉好别忘了给个review(评论),谢谢!
tingsking18 2010-07-30
  • 打赏
  • 举报
回复
饿。是不是因为没设置超时?

16,215

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧