【QT 5 调试软件+(Linux下验证>>>>串口相关初试串口)+Windows下qt代码在Linux下运行+参考win下历程+基础样例】

news2024/12/24 6:01:28

【QT 5 调试软件+Linux下验证>>>>串口相关初试串口+参考win下历程+基础样例】

  • 1、前言
  • 2、实验环境
  • 3、先行了解
  • 4、自我总结-win下工程切到Linux下
      • 1、平台无关的代码:
      • 2、依赖的库:
      • 3、文件路径和换行符:
      • 4、编译器差异:
      • 5、构建系统和环境设置:
  • 6、实验样例代码
  • 7、实验过程
        • 1、下载代码
        • 2、下载解压工具
        • 3、使用qt开发工程
        • 4、插入硬件,运行软件
        • 5、验证
  • 8、细节部分
      • 1、USB转TTL转换工具无法使用
  • 9、总结

1、前言

最近要Linux下做相关软件开发了,还要当自己为新手,本着求知求学的心态,再简单的事情,也要好像学习,一面一些不该犯的错误犯了,另外也是趟一些雷,不害怕出错误,哪怕碰到最简单的错误也要好好总结下。

2、实验环境

实验环境还是挺重要的,因为有时候,在你电脑上能运行的东西,在别人的电脑就不一定能运行,这一部分的原因就可能是实验版本不一样。
系统环境:
环境问题还是要注意下的,不同环境下可能还真的可能不一样。
在这里插入图片描述

QT软件版本:qt 5.14.2
硬件设备:CH34的TTL串口转usb模块(使用H7开发板代替)

3、先行了解

在如下这篇文章里,我们安装了软件,并且简单建立一个工程。首次实现了在Linux下运行第一个dome。
【Linux20.04-qt5.12.4软件安装与初步使用-qt在Linux使用-记录-笔记】

如何还没有安装的话,可以先看看。

4、自我总结-win下工程切到Linux下

首先不得不说,qt在跨平台这放面做得挺好的。
这点从我将一个简单的串口样例直接拉倒Linux下运行,就可以看出。但是我们还是要注意下,有些并不能直接运行的。

以下在网上搜索的,整理如下。

在很多情况下,Windows下的Qt代码可以直接在Linux环境中编译和运行,但这也取决于几个因素,这些因素,在实践中运行过程中,会对最后运行结构有影响。

1、平台无关的代码:

Qt框架本身是设计成跨平台的。如果你的代码只使用了Qt的跨平台特性,并没有调用特定于Windows的API,那么这些代码通常可以在Linux上编译和运行而不需要修改。

自己也是刚刚使用Linux下进行开发,依赖外部的工具,比如之前在win下,调用工具exe给STM32单片机烧写的例子,因为Linux下exe无法运行,所以相应工程就无法直接跨平台。
【QT调用ST-link-使用QT编写程序-调用ST-LINK_CLI.exe-烧写STM32F4xxx-基础样例】

2、依赖的库:

如果你的应用程序依赖于特定平台的库或者第三方库,你需要确保这些库也在Linux上可用,并且可能需要对应用程序进行相应的修改。

像之前can相关,自己暂时不知道Linux是否有相关库,不过之前Windows下那个可能不能拿过来直接用,像这种调用外部库的,可能性要查下,能不能直接使用。

3、文件路径和换行符:

Windows和Linux在文件路径(例如,路径分隔符)和换行符上有所不同。Windows使用反斜杠(\)作为路径分隔符和CRLF作为换行符,而Linux使用斜杠(/)作为路径分隔符和LF作为换行符。虽然Qt封装了很多这样的细节,但如果你的代码直接处理了这些,可能需要进行调整。

4、编译器差异:

不同的编译器可能对C++标准的支持程度不同,或者对代码的解释有细微差别。如果你的代码依赖于特定编译器的特性,或者使用了非标准的C++特性,可能需要进行一些调整。

5、构建系统和环境设置:

你可能需要根据Linux环境调整构建脚本或项目文件(如.pro文件),尤其是当涉及到不同的编译器或者特定于平台的构建指令时。

总的来说,如果你的Qt应用程序是以跨平台为目标开发的,并且遵循了良好的编程实践,那么将其从Windows迁移到Linux通常是直接可行的,或者需要的修改非常有限。然而,如果存在平台特定的代码或依赖,那么这个过程可能会更复杂。

6、实验样例代码

这次我们直接使用Windows下的qt代码,选择了串口那个简单样例,如下。
【QT 5 调试软件+串口相关初试串口+基础样例】

代码连接:https://download.csdn.net/download/qq_22146161/86722251

7、实验过程

1、下载代码

在这里插入图片描述

2、下载解压工具
  626  sudo apt-get install unrar
  628  sudo unrar x test_dome_serial1.rar 

(1)下载工具
自己实际调试时,发现没有安装这个解压工具,所以先安装下,如上边626行命令。
(2)解压
在这里插入图片描述

3、使用qt开发工程

在这里插入图片描述

4、插入硬件,运行软件

一般RS232应该是免驱动的,直接插上就能用。
在这里插入图片描述

5、验证

在这里插入图片描述

8、细节部分

1、USB转TTL转换工具无法使用

这里我发现,USB转TTL转换工具不好用了,记得win下,好像要装驱动的,所以无法使用,后续再看看能不能使用吧。
在这里插入图片描述

9、总结

一步一个脚印

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1305122.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

simulinkveristandlabview联合仿真环境搭建

目录 开篇废话 软件版本 明确需求 软件安装 matlab2020a veristand2020 R4 VS2017 VS2010 软件安装验证 软件资源分享 开篇废话 推免之后接到的第一个让人难绷的活,网上开源的软件资料和成功的案例很少,查来查去就那么几篇,而且版本…

链表OJ—环形链表的约瑟夫问题

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前言 世上有两种耀眼的光芒,一种是正在升起的太阳,一种是正在努力学习编程的你!一个爱学编程的人。各位看官,我衷心的希望这篇博客能对你…

使用Retrofit实现文件的上传和下载

一、前言 使用Retrofit实现文件的上传和下载,代码是正确的代码但是我也不知道为什么运行不出来。 报错内容可以给你们看一下暂时没有解决。 1.文件的上传报错内容 什么添加读写权限,降低目标sdk的版本都试过了不行。有木有会的留个言。 2.文件的下载…

PyQt6 水平布局Horizontal Layout (QHBoxLayout)

锋哥原创的PyQt6视频教程: 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计41条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话版…

输出网络结构图,mmdetection

控制台输入:python tools/train.py /home/yuan3080/桌面/detection_paper_6/mmdetection-master1/mmdetection-master_yanhuo/work_dirs/lad_r50_paa_r101_fpn_coco_1x/lad_r50_a_r101_fpn_coco_1x.py 这个是输出方法里面的,不是原始方法。 如下所示&a…

无参数RCE知识点

什么是无参数RCE? 无参rce,就是说在无法传入参数的情况下,仅仅依靠传入没有参数的函数套娃就可以达到命令执行的效果 核心代码 if(; preg_replace(/[^\W]\((?R)?\)/, , $_GET[code])) { eval($_GET[code]); } 这段代码的核心就是只…

gamit一(虚拟机启动不了)

Intel VT-x处于禁用状态怎么办-百度经验 1重新启动电脑 2找到电脑对应的品牌,联想G510是F2, 3进去BIOS,configure里面修改virtual为enable,回车 4F10保存,退出

centos7上安装mysql5.7

1 下载mysql5.7网址 下载后缀名为“.tar.gz”的压缩包 连接虚拟机后 输入: rz 找到你下载的压缩包 2 解压缩 tar -zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz将减压后的文件移动到/usr/local文件夹下并重命名为mysql mv mysql-5.7.26-linux-glibc2.12-x8…

极简壁纸js逆向(混淆处理)

本文仅用于技术交流,不得以危害或者是侵犯他人利益为目的使用文中介绍的代码模块,若有侵权请练习作者更改。 之前没学js,卡在这个网站,当时用的自动化工具,现在我要一雪前耻。 分析 第一步永远都是打开开发者工具进…

【精选】设计模式——工厂设计模式

工厂设计模式是一种创建型设计模式,其主要目的是通过将对象的创建过程封装在一个工厂类中来实现对象的创建。这样可以降低客户端与具体产品类之间的耦合度,也便于代码的扩展和维护。 工厂设计模式: 以下是Java中两个常见的工厂设计模式示例…

5G下行链路中的MIMO

5G MIMO 影响5G MIMO配置的主要因素是天线的数量和层数UE和gNB有一些预定义的表来定义天线端口和层的数量,选择了特定的表,UE如何确定表中的哪一行用于gNB的每次传输DCI 1-1中该规定了Antenna port 和 层数DMRS 端口数表示正在使用的天线数量&#xff0…

搭建商城系统的构架如何选择?

近期有很多网友在csdn、gitee、知乎的评论区留言,搭建商城系统是选择单体架构还是微服务架构,这里先说结论,如果是纯电商的话,商城系统的架构建议选择单体架构。我们分析下微服务和单体架构的优劣势,就知道了。 一、什…

Gemini与GPT-4的巅峰对决:AI界的双壁之战

随着人工智能技术的飞速发展,AI领域的竞争越来越激烈。在这个充满挑战与机遇的时代,两个备受瞩目的AI巨头——Gemini Pro和GPT-4,成为了人们关注的焦点。这两者都以其强大的功能和卓越的性能,引领着AI领域的发展潮流。本文将详细介…

某省资源交易中心 (js逆向)

该文章只是用于逆向学习,不得以商用或者是破坏他人利益的目的进行使用。如有侵权请联系作者。 网站链接: bse64 aHR0cHM6Ly9nZ3p5ZncuZnVqaWFuLmdvdi5jbi9idXNpbmVzcy9saXN0Lw 分析环节 进入网站 进行翻页请求时我们会发现改请求时ajax请求。 这里&…

Vue 只渲染一次 v-once

v-once 指令&#xff1a;用于只渲染一次&#xff0c;首次渲染后&#xff0c;就不会再重新渲染了。 v-once 指令&#xff1a;也可以用在组件上&#xff0c;使组件只加载一次。 语法格式&#xff1a; // 在标签中使用 <div v-once> {{ 数据 }} </div>// 在组件中使…

【算法】递归、搜索与回溯算法

文章目录 一. 名词解释1. 递归1.1 什么是递归&#xff1f;1.2 为什么会用到递归&#xff1f;1.3 如何理解递归&#xff1f;1.4 如何写好一个递归&#xff1f; 2. 遍历和搜索3. 回溯和剪枝 二. 递归系列专题1. 汉诺塔问题2. 合并两个有序链表3. 反转链表4. 两两交换链表中的节点…

进程(IPC)_D3(2023-12-12)

XMind&#xff08;分图版&#xff09;

通过例子了解Go测试---来自Russ Cox的演讲

大家好. 几周前,我在澳大利亚 GopherCon 上发表了这个演讲[1], 但一些音/视频问题影响了效果,所以我在家重新录制了这个版本,enjoy&#xff01; 这次演讲的主题是编写好的测试&#xff0c;但首先让我们思考一下为什么需要编写测试。为什么程序员要编写测试呢&#xff1f;编程相…

java实现局域网内视频投屏播放(三)投屏原理

常见投屏方案 常见的投屏方案主要有以下几种&#xff1a; DLNA DLNA的全称是DIGITAL LIVING NETWORK ALLIANCE(数字生活网络联盟)。DLNA委员会已经于2017年1月5日正式解散&#xff0c;原因是旧的标准已经无法满足新设备的发展趋势&#xff0c;DLNA标准将来也不会再更新。但是…