【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】

这篇具有很好参考价值的文章主要介绍了【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、概述

有句话叫做,出来还混,早晚是要还得,当时为快点使用完成can的qt上位机,偶然在网上找到一个样例,正好能运行,就直接拿着那个样例进行改了,后来上位机遇到点精准时间问题,一时间不知道如何调,正好也借着这个机会,学习一下样例代码,纯手打一遍。

2、实验环境

实验环境还是挺重要的,因为有时候,在你电脑上能运行的东西,在别人的电脑就不一定能运行,这一部分的原因就可能是实验版本不一样。
系统环境:window环境
QT软件版本:qt 5.14.2

3、自我总结和提升

(1)通过学习他人代码,理解他的大致思路,是通过调用外部写好的库

(2)自己需要布局和写相应控件函数。

(3)使用了一个叫“标准数组(QStandardItem)”的模型,来承载收与发出的数据。

(4)因为之前学习了示波器,于是将示波器,换成自己之前学习那种。

4、事先声明

(1)我学习的这份代码,是通过那片文章作者留下的联系方式,花钱买的,原本想弄成收费的就完事了,结果等级不够,那就设成VIP专享吧,觉得有价值,可以拿走,或者评论索取。

【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】

会提供那篇文章连接,如有需要自己向他寻求。
博客链接:https://blog.csdn.net/hs977986979/article/details/109652847

(2)我目前使用的can卡种类不是很多,就一种,是专门针对这个can卡,学习和写的上位机,所以软件可能不支持其它类型can卡,我会发出我买这款can卡连接。
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】

1、can卡购买链接:某宝搜“创芯科技 CAN分析仪 CANOpen J1939 DeviceNet USBCAN USB转CAN 高配版(红色)”

2、can卡资料链接:can卡:>>https://download.csdn.net/download/qq_22146161/87439313

5、效果展示

这个系列最后效果图展示。
(1)第一个界面:接收界面
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】

(2)第二个界面:绘图界面
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】

本篇文章,最后效果界面
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】

6、代码编写过程

(1)操作步骤部分

1、新建工程

新建空白工程,老操作步骤了,尽量快点说,选择widget或者main
(1)点击文件>>>新建文件或项目
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】
(2)如下选
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】
(3)一路下一步,这里如果不是很理解“QWidget”和“QMainWindow”,可以理解为都一样的。
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】
(4)运行,如下图,一个空白工程建立好了
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】

2、加入外部库,并且加入qt工程中

(1)运行的时候,就是使用如下三个文件,将文件放在建好的工程下,
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】
(2)然后引用的时候,只要引用“ControlCAN.h”文件就可以了。
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】
(3)添加”qcustomplot.cpp“和“qcustomplot.cpp”,这两个事原先文件里绘图的,这类因为后期用自己的,看自己需求,也不是我们需要练习的代码,带着也无所谓。
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】

3、ui页面布局

ui布局这块对于初学者还是比较难的,很多方式优化界面方式,这块没有什么好的办法,只能多看其它人怎么做的,我自己就是这么过来的,然后去一点点自己尝试,很多设置的细节,才能达到某种效果,之前也做个一些特效的实现方式,这里非常建议去看看,当然本篇作为第一篇基础篇,修饰这类的事情,再完成软功能后做。同时,也会说一些效果如何添加。

【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】
这里需要注意:布局可以不太相同,但是ID名字最好注意一下,在代码里引用的时候,名字不一样,可能会造成一定错误。
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】

4、代码练习

这样就进入了代码练习部分,基本是找不同环节,那不一样,就手动敲一遍。
(1)pro文件
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】
哪里不i一样,就敲哪里。
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】

(2).h文件
.h文件下,主要是包含引入文件,一些变量和自己定义的函数。
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】

(3).cpp文件
.cpp文件里主要是自己使用函数,编写功能,具体实现。
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】

5、运行测试

代码弄好后,其实有很多细节部分,这里可能因为代码打错,可能会遇到很多问题,新手的话建议多练习吧。具体碰到的一些问题,我也会在细节部分进行说明。

【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】

(2)代码解析

如果你按照说明一路敲写了一遍,那么自己会认为,会学到很多东西的,这里就是对自己学习的一些点,进行罗列。

1)标准QStandardItemModel

文档链接:https://doc.qt.io/qt-5/qstandarditemmodel.html
其实光看这些说明,其实不是很理解如何用的,可谓是道路看了许多,真正用起来,还是不明白。
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】
通过本次代码样例吧,先练习一下,反过来理解这个,反而轻松明了许多。
第一步:声明与初始化
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】
第二步:一条数据格式编写,如下图。
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】
第三步:进行添加
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】

2)外部库,can相关提供的函数。

如下图,像这类函数,都是来自“ControlCAN.h头文件”,我们在下面设置好配置后,都是在调用这些函数,让函数来帮我们打开设备和关闭等功能。
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】
其中带的资料:can卡:>>https://download.csdn.net/download/qq_22146161/87439313

我们可以直接看看“ControlCAN.h头文件”,如下图,可以看到有一些定义,和函数方法。
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】

有个文档里专门说这些函数的,我们练习完代码可以加深对这些函数理解,我也是练习完了代码,对这些函数理解更深一点。
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】

3)自己写的功能函数

如下图,我认为这点是参照的那位博主写的好地方,很多小功能的代码片段,来整理收到数据,将其转换成我们需要的样子,因为can数据有小端模式的原因,数据是倒过来,我们可以用这些函数重新拼接。
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】
我们发什么数据也可以直接定成字符串,当然可以自己写相应功能函数。

4)接收功能和解析功能函数

如下图,是接收数据的函数,这里将收到数据,给到标准模型去(QStandardItemModel ),还有数据解析,这里主要是调用外部库的收取函数。
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】
在数据解析里,可以根据具体按键,做相应解析,本篇先不讲,先知道有这么个函数就行。

5)槽函数

跟界面上触发相关,有很多槽函数,这些槽函数,在点击界面会,会触发功能。
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】

7、代码链接

这里还是需要说明一下的,我学习的这份代码,是通过那片文章作者留下的联系方式,花钱买的,原本想弄成收费的就完事了,结果等级不够,那就设成VIP专享吧,觉得有价值,可以拿走,或者评论索取。
此代码为第一阶段,样例dome代码。
代码链接:https://download.csdn.net/download/qq_22146161/87740755
目前已经可以付费了,大家有需要就自己下载吧,一个个发送邮件实在是太麻烦了。
代码连接:https://download.csdn.net/download/qq_22146161/88301204

8、细节部分

(1)波特率的由来

最开始的是,不清楚为啥,波特率为啥是这个样子的数组。
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】
直到练习一遍代码后,看了资料。
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】

(2)放置再其它目录下,在当前目录下运行问题。

在实际运行过程中,一定启动,发现运行是最终的那个,这里做如下勾选掉,这样就是当前目录的了。
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】

(3)报错:如下“ui was not …”或者 “use of …”什么的。

【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】
解决:就是忘记加入"Widget::"MWaveViewInit()了。
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】

(4)设置储存位置大小为2500

在文档中,有如下说明
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】
代码中位置设置。

【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】

(5)一个错误,显示不知道外部库函数。

【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】
解决方式:在.pro文件加入代码段
【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】

9、总结

想说的话以下:
(1)学样例的优点是,很快,很容易学会,但这是毕竟不是自主创造的,所以可能不会那么深入。
(2)自己摸索创造的优点是,很深入每个细节,自己提升更高,缺点是很慢,时常摸不到头脑。
(3)本篇为第一篇,主要使用外部库和can卡硬件,显示can的qt软件基本收发功能。加入示波器和其它,请看后续文章。文章来源地址https://www.toymoban.com/news/detail-428703.html

到了这里,关于【QT5:CAN卡通信的上位机-代码练习-收发数据+布局+引用外部库+基础样例(1)】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32+Cube mx hal库实现CAN通信收发实验

          关于CAN通信的入门教程和基本原理在其他博主发的文章里面都有介绍,笔者只是简单记录下学习过程,文章用到的是正点原子的阿波罗F429开发板,另一个设备是中盛科技的继电器模块(CAN版)。       实现之前看一下继电器模块相关信息          发送数据的格式官方文

    2024年02月16日
    浏览(44)
  • 利用RS485通信、串口收发数据的硬件连接及部分代码

    设计思路:单片机A检测单片机B的功能,单片机B待检测的地方全部引出,然后再将一些功能信息发送到屏幕。单片机A和单片机B之间、单片机A和屏幕(一种可视化编辑的屏幕,规定好通信协议,利用485通信将字符串发送过去就能显示相应的内容,屏幕:TK607ID) 。 注:本文只对

    2024年02月08日
    浏览(50)
  • 51单片机串口通信的原理及使用方法(附串口收发数据例程代码)

    温馨提示:本篇文章详细介绍了串口的原理及使用方法,涉及的内容较多,但也较为全面,学者若想充分掌握串口通信的原理和具体使用方法(部分限于51单片机),请静下心来将其读完,相信一定会受益匪浅!而且对32单片机的串口学习也有非常好的辅助! 一.串行通信的原

    2024年02月09日
    浏览(42)
  • QT基础篇(10)QT5网络与通信

    QT5网络与通信是指在QT5开发环境中使用网络进行数据传输和通信的相关功能和技术。 QT5提供了一套完善的网络模块,包括了TCP、UDP、HTTP等协议的支持,可以方便地在QT应用程序中进行网络通信。通过QT5的网络模块,开发者可以实现客户端和服务器之间的数据传输、消息推送、

    2024年01月19日
    浏览(38)
  • 单片机与QT上位机通信

    目录 1.项目说明 2.上位机QT绘制 2.1建立工程  2.2绘制ui  2.3编程 2.3.1 头文件 2.3.2 CPP文件  2.3.3 运行测试 2.4进阶--实现两个界面切换 2.4.1绘制ui  2.4.2编程  2.4.3完善第二个界面 3.单片机数据发送 此次项目为通过51单片机将温湿度数据通过串口发送给QT,QT做界面并显示。要求实

    2024年01月21日
    浏览(36)
  • 基于QT5.14.2的MQTT通信

    一、概述 这个资料写的很好:MQTT协议,终于有人讲清楚了 参考图: 默认的Qt环境是不能使用MQTT的,但Qt官方提供了基于MQTT的封装,需要通过源码进行编译。 可以在下面的链接中获取到: https://github.com/qt/qtmqtt 在dev分支中可以选择MQTT版本,选择最新的下载到本地。 注意一定

    2024年02月10日
    浏览(45)
  • 【Qt上位机与STM32进行串口通信】-2-Qt串口开发

    系列文章目标:Qt上位机与STM32进行串口通信,控制多个LED的状态。 本篇文章的主要目标: 1、设计两个界面,串口连接界面、控制界面。 2、只有在串口连接成功才能打开控制界面。 3、打开控制界面时,串口保持连接。 4、自定义控件,提升开发效率。 以下是我入门Qt的视频

    2024年02月06日
    浏览(50)
  • STM32利用USB的HID与QT上位机通信

      之前使用kingst的逻辑分析仪,打开上位机软件,插上带usb的硬件就可以通信,也不需要打开串口什么的,感觉很方便,于是借用一个周末研究下这个技术。本文主要是用于记录自己学习的过程,顺便分享下学习感悟。 首先初略说下大体是怎么回事,就是单片机使用hid功能需

    2024年02月07日
    浏览(45)
  • 【QT5-自我学习-线程qThread练习-两种使用方式-1:通过继承线程类来使用-基础样例】

    学习线程其实有一段时间了,当时只是学习,没有实际用起来,最近做的一个qt程序,发现如果不使用线程,那么就会导致界面卡死,这样才体现出线程的实际作用。 发现卡顿的程序就是前几天说到的“【QT调用ST-link-使用QT编写程序-调用ST-LINK_CLI.exe-烧写STM32F4xxx-基础样例】”

    2024年02月11日
    浏览(49)
  • QT5教程-搭建自己的人机交互界面(附代码)(一):QT5安装与环境配置

    本教程目的在于记录自己开发QT项目的学习过程。 适合刚刚接触QT的初学者 。鉴于个人水平有限,必定错误频出,请各位前辈多多指教。 使用QT5.9.9作为开发工具,开发环境为Ubuntu20.04,图形传输需要安装Opencv4.5.5和FFmpeg。消息传输需要配置mqtt模块。 教程要求学习者对C++有基

    2024年02月11日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包