上位机软件开发教程qt(上位机软件编程)

软件开发 3575
本篇文章给大家谈谈上位机软件开发教程qt,以及上位机软件编程对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、

本篇文章给大家谈谈上位机软件开发教程qt,以及上位机软件编程对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

怎么学Qt,我的终极目标是用Qt编写一个上位机界面就行了,有没有高手指点下,怎么学,用什么书容易上手?

不知道 上位机界面 是什么东东. 我讲讲我学Qt, 我安装编译完库之后, 库里会有很多demo例子. 把那些例子跑跑, 浏览下我关心的功能的源代码. 然后自己想想自己需要的功能大概要用到哪些组件. 把那几个相关的例子和相关组件的文档仔细的看看, 就差不多可以写出来了.

假如你基础还不错的话, 可以参考下.

qt stm32上位机串口通信

1、首先,新建一个Qt项目:文件--新建文件。

2、然后,点击-- choose。

3、再然后,全部下一步到完成。

4、成功建立一个Qt:Widgets Application。

5、然后,新建一个管理SerialPort的类:右击项目名字--添加新文件--弹出。

6、选择C++ Class。点击:choose--弹出如下框: 并填写--点击下一步---点击完成。

想学习QT,用在机电设备方面的上位机,比如运动控制卡、图像采集卡等的编程,给点建议吧,谢谢!

个人感觉QT的执行效率不是特别高,如果用在上位机,对实时性要求比较高的场合还是不推荐使用的,一般采用qt都是因为可视化比较好,但是工程上一般要求控制品质和精度,光有外表华丽是不行的。

如果要学习qt,如果有一些MFC开发经验那就很容易入手,毕竟这种集成化开发环境都是大同小异的。如果没有经验,那么就从头学起吧,最好找一些有样例的教材,一步一步的学习,千万别着急,要脚踏实地,一步一步就可以实现你的梦想了!

上位机开发

就目前就业市场来看,不管上位机,还是下位机,应用程序领域的人才需求总是最大的。

做测试软件其实不一定需要用 c#,假如你对c/c++开发比较熟,那直接用 MFC 等写些

对话框应用就好了,测试软件不至于会太复杂。另外假如 c/c++ 通了,C#之类的不要

太简单。

对于做工作来说的话,除非你已经走在自己已经认准的那条道上了。否则你还是兵来将

挡,水来土掩的好。任何时候,有任何需要,你凭借自己的基础稍做学习都能立马上手。

还有一点,不是说你今天或者这几个月做了 c# ,后面几年时间你就必须得用它来吃饭了。

做c#的过程也许只是你长期职业追求中的一个插曲而已,对于增加知识面也有好处。

正点原子linux开发板怎么调试

ui

正点原子Linux开发板——Qt串口上位机实验

门牙会稍息

原创

关注

3点赞·53人阅读

前言:

最近在学习嵌入式qt开发,然后跟着教程编写了一个简单的串口上位机程序,在编写的时候还算比较顺利,但在调试的时候花了点功夫,折腾了一下午。最后还是理清了思路,解决了问题,特写此博客进行记录和总结。

串口上位机界面设计:

整个软件的界面我都是用ui来设计的,其实也可以用代码,但是想了想有好多布局相互嵌套比较麻烦。最后就使用了ui界面来设计。

ui界面设计

串口上位机程序功能设计:

然后像串口对象初始化,槽函数,一些逻辑关系都用代码来实现,头文件就只有一些变量、槽的定义。

头文件

#include "widget.h"

#include "ui_widget.h"

#include QMessageBox

Widget::Widget(QWidget *parent)

: QWidget(parent)

, ui(new Ui::Widget)

{

ui-setupUi(this);

//lcd屏的分辨率是1024X600

this-setFixedSize(QSize(1024, 600));

//new 一个QSerialPort对象

serialPort = new QSerialPort(this);

//通过foreach语句将windows或imx6ull可用串口识别出来,并添加至对应的下拉选择框

QStringList serialList;

foreach(const QSerialPortInfo info, QSerialPortInfo::availablePorts()){

serialList += info.portName();

}

ui-comboBox-addItems(serialList);

//设置串口的信号与槽

connect(serialPort, SIGNAL(readyRead()), this, SLOT(readData()));

}

Widget::~Widget()

{

delete ui;

}

void Widget::on_radioButton_clicked(bool checked)

{

//点击“打卡串口”button之后的一些串口配置操作,和一些逻辑关系

if(checked){

//设置串口端

serialPort-setPortName(ui-comboBox-currentText());

//设置波特率

serialPort-setBaudRate(ui-comboBox_2-currentText().toInt());

//设置停止位

serialPort-setStopBits(QSerialPort::StopBits(ui-comboBox_4-currentText().toInt()));

//设置数据位

serialPort-setDataBits(QSerialPort::DataBits(ui-comboBox_6-currentText().toInt()));

//设置校验位

switch(ui-comboBox_5-currentIndex()){

case 0:

serialPort-setParity(QSerialPort::Parity::NoParity);

break;

case 1:

serialPort-setParity(QSerialPort::Parity::EvenParity);

break;

case 2:

serialPort-setParity(QSerialPort::Parity::OddParity);

break;

case 3:

serialPort-setParity(QSerialPort::Parity::SpaceParity);

break;

case 4:

serialPort-setParity(QSerialPort::Parity::MarkParity);

break;

default:

break;

}

serialPort-setFlowControl(QSerialPort::NoFlowControl);

if(!serialPort-open(QSerialPort::ReadWrite)){

QMessageBox::about(this, "串口打开错误提示", "可能被占用了");

return;

}

//打开串口之后其他的选择按钮设置成不可用

ui-comboBox-setEnabled(false);

ui-comboBox_2-setEnabled(false);

ui-comboBox_4-setEnabled(false);

ui-comboBox_5-setEnabled(false);

ui-comboBox_6-setEnabled(false);

ui-radioButton-setText("关闭串口");

}

else{

serialPort-close();

ui-comboBox-setEnabled(true);

ui-comboBox_2-setEnabled(true);

ui-comboBox_4-setEnabled(true);

ui-comboBox_5-setEnabled(true);

ui-comboBox_6-setEnabled(true);

ui-radioButton-setText("打开串口");

}

}

void Widget::readData()

{

//将串口中的数据打印到textBrowser中

ui-textBrowser-insertPlainText(serialPort-readAll());

}

void Widget::on_pushButton_clicked()

{

//点击“发送”button之后,将textEdit中的内容写入串口

serialPort-write(ui-textEdit-toPlainText().toUtf8());

}

void Widget::on_pushButton_2_clicked()

{

//清屏操作

ui-textEdit-clear();

ui-textBrowser-clear();

}

登录后复制

在windows端编写好程序之后,将工程文件发送到ubuntu进行qmake、make最后通过scp将ARM的可执行文件发送到开发板,接下来就是验证了

我用的是正点原子出厂的系统,所以在验证的时候需要使用到一个串口来连接到开发板执行编写好的上位机程序,所以一个串口就被占用了,正点原子教程视频就用开发板的另一个串口来进行测试

正点原子教程测试方式

因为放假回了家,我也没有带太多的东西,usb转ttl模块放在了学校。所以我在想怎么就用一个串口来完成实验。困扰我的就是唯一的一个串口必须留个上位机,然后要怎么执行开发板上的串口上位机程序?最初我想到了可以使用网络通过Xshell远程连接到开发板就可以执行,唯一的串口就拿来验证。

解决完上位机软件怎么在imx6ull上执行的问题,接下来就是验证了。验证的时候又出现了一些问题,上位机软件不像想象的那样一边发数据,一边就接收对应的数据,而出现了一些imx6ull的信息,好像还可以输入命令,感到非常奇怪。

我以为我的软件有问题,就在windows上换了一个串口软件,结果还是出现了类似的情况

最后也是在不断猜想和测试之后找到了原因,就是应因为我在给开发板上电的时候接入了串口线,然后先打开了windows上的串口,然后就使用到了串口,导致就相当于有一个串口控制imx6ull开发板,像Xshell中通过串口连接开发板一样。然后我尝试在windows的上位机软件输入命令想打开一个qt程序,最后也是成功打开证实了猜想

执行./list命令打开了蛇姐list程序(qt程序的路径是/home/root/qt_project/list)

如果想要实现实验最初windows和imx6ull两个上位机互换数据的效果的话。要先通过windows中的上位机软件输入命令来打开imx6ull的上位机软件,这样相当于windows中的上位机连接的就是imx6ull的上位机了,而不是直接控制imx6ull了,之后就可以正常收发数据了。

总结:

学了qt快半个月了,这个串口上位机算是一个比较综合的练习了,结合了ui和代码设计。加上最后的调试也是收获颇多,如果有usb-ttl模块的话验证步骤就会更简单。

上位机软件开发教程qt的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于上位机软件编程、上位机软件开发教程qt的信息别忘了在本站进行查找喔。

扫码二维码