首页 > 其他 > 详细

Qt 串口学习3

时间:2014-04-25 23:39:04      阅读:802      评论:0      收藏:0      [点我收藏+]
1.怎样将选择波特率

1)使用if else 的方法
    if(ui->BaudRate->currentText()==tr("9600"))   //根据组合框内容对串口进行设置
       my_serialport->setBaudRate(QSerialPort::Baud9600);
    else if(ui->BaudRate->currentText()==tr("115200"))
2)使用 switch case 的方法
一般使用 if else的方法

2何时去读缓冲区
1)定时器的方法
timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(updateserial()));
// 1s
timer->start(1000);

void Widget::updateserial()
{
requestData = my_serialport->readAll();
if(requestData!= NULL)
{
ui->recivetxt->append(requestData);
}
requestData.clear();
}
2)利用SLOT 函数
connect(my_serialport,SIGNAL(readyRead()),this,SLOT(updateserial()));
一般选用定时器的方式
3怎样将数据显示在文本框中
requestData = my_serialport->readAll();
if(requestData!= NULL)
{
ui->recivetxt->append(requestData);
}

4怎样从文本框中读数据后发送
myCom->write(ui->SendLineEdit->text().toAscii());//在Qt 5中没有toascii

QByteArray TxData;
QString string;
string=ui->sendtxt->toPlainText();
TxData=string.toLocal8Bit();
my_serialport->write(TxData);
5定时发送
int interval = ui->lineEditTime->text().toInt(&ok); //从文本框中获取定时时间
timer = new QTimer();
connect(timer, SIGNAL(timeout()), this, SLOT(timeout()));
timer->setInterval(interval);
timer->start();
6如何存储数据
QString fileName = QFileDialog::getSaveFileName(this, tr("保存数据"),"./",tr("文本文件 (*.txt *.dat);;所有文件 (*.*)"));//获得filename
QFile file(fileName); //新建file对象
file.open(QIODevice::WriteOnly);//打开
file.write(ui->textEditRecv->toPlainText().toAscii());//写入
file.close();//关闭
和串口的操作相同
在linux中建设别当作文件处理,相比Qt 也将设备和文件的操作方式封装成一样






Qt 串口学习3,布布扣,bubuko.com

Qt 串口学习3

原文:http://www.cnblogs.com/chen-/p/3689890.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!