程序示例精选
VS2022+Qt雕刻机单片机马达串口上位机控制系统
如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助!
前言
这篇博客针对《VS2022+Qt雕刻机单片机马达串口上位机控制系统》编写代码,代码整洁,规则,易读。 学习与应用推荐首选。
运行结果
文章目录
一、所需工具软件
二、使用步骤
1. 主要代码
2. 运行结果
三、在线协助
一、所需工具软件
1. Python
2. Pycharm
二、使用步骤
代码如下(示例):
***********************************************************
void MainWindow::on_openBtn_clicked()
{
if (ui.pushButton->text() == QStringLiteral("打开串口"))
{
std::cout << "openBtn " << std::endl;
myPort = new QSerialPort(this);
myPort->setPortName(portname);
std::cout << "test_ " << std::endl;
if (myPort->open(QIODevice::ReadWrite))
{
myPort->setBaudRate(baudRate);
myPort->setDataBits(QSerialPort::DataBits(databit));
myPort->setParity(QSerialPort::Parity(parity));
myPort->setStopBits(QSerialPort::StopBits(stopbit));
statusBar()->showMessage(QStringLiteral("串口已经打开"));//状态栏显示的内容
//connect(myPort, SIGNAL(readyRead()), this, SLOT(readCom()));
ui.pushButton->setText((QStringLiteral("关闭串口")));
}
else
{
//QMessageBox::information(this,tr("提示框"),tr("串口无法打开"));
statusBar()->showMessage(QStringLiteral("串口无法打开"));//状态栏显示的内容
}
}
else
{
myPort->close();
statusBar()->showMessage(QStringLiteral("串口已经关闭")); //状态栏显示的内容
ui.pushButton->setText(QStringLiteral("打开串口"));
}
}
void MainWindow::readCom()
{
qDebug() << " ";
std::cout << "readCom运行" << std::endl;
QByteArray byte_data = myPort->readAll(); //读取串口数据
qDebug() << QStringLiteral("文本接收byte_data: ") << byte_data;
//转为QString
//QString strDisplay=QString::fromUtf8(byte_data);;
QString strDisplay = QString::fromLocal8Bit(byte_data);;
qDebug() << QStringLiteral("文本接收strDisplay: ") << strDisplay;
//得到接收radioButton控件选项
QString getRadioButtonText = QString("%1").arg(ui.radioButton->isChecked());
QString getRadioButtonHEX = QString("%1").arg(ui.radioButton_2->isChecked());
std::cout << "getRadioButtonText: " << getRadioButtonText.toStdString() << std::endl;
std::cout << "getRadioButtonHEX: " << getRadioButtonHEX.toStdString() << std::endl;
//将读取到的数据进行转化,是否是按16进制显示
if (getRadioButtonHEX == QStringLiteral("1"))
{
std::cout << "HEX接收 "<< std::endl;
for (int i = 0; i < str.length(); i += 2)
{
QString st = str.mid(i, 2);//从i这个位置开始,返回2个字符串
strDisplay += st;
strDisplay += " ";
}
qDebug() << "strDisplay" << strDisplay;
ui.textEdit->insertPlainText(strDisplay);
}
else if (getRadioButtonText == QStringLiteral("1"))
{
std::cout << "文本接收" << std::endl;
ui.textEdit->insertPlainText(byte_data);
}
byte_data.clear();
}
//清空接收框
void MainWindow::on_pushButton_2_clicked()
{
ui.textEdit->clear();
}
运行结果
三、在线协助:
如需安装运行环境或远程调试,见文章底部个人 QQ 名片,由专业技术人员远程协助!
1)远程安装运行环境,代码调试
2)Visual Studio, Qt, C++, Python编程语言入门指导
3)界面美化
4)软件制作
5)云服务器申请
6)网站制作
当前文章连接:https://blog.csdn.net/alicema1111/article/details/132666851
个人博客主页:https://blog.csdn.net/alicema1111?type=blog
博主所有文章点这里:https://blog.csdn.net/alicema1111?type=blog
博主推荐:
Python人脸识别考勤打卡系统:
https://blog.csdn.net/alicema1111/article/details/133434445
Python果树水果识别:https://blog.csdn.net/alicema1111/article/details/130862842
Python+Yolov8+Deepsort入口人流量统计:https://blog.csdn.net/alicema1111/article/details/130454430
Python+Qt人脸识别门禁管理系统:https://blog.csdn.net/alicema1111/article/details/130353433
Python+Qt指纹录入识别考勤系统:https://blog.csdn.net/alicema1111/article/details/129338432
Python Yolov5火焰烟雾识别源码分享:https://blog.csdn.net/alicema1111/article/details/128420453
Python+Yolov8路面桥梁墙体裂缝识别:https://blog.csdn.net/alicema1111/article/details/133434445
Python+Yolov5道路障碍物识别:https://blog.csdn.net/alicema1111/article/details/129589741
Python+Yolov5跌倒检测 摔倒检测 人物目标行为 人体特征识别:https://blog.csdn.net/alicema1111/article/details/129272048