基于QT的CAN通讯数据实时波形显示(连载一)========“CAN文件定义和添加”

本文档记录了在QT中使用CAN接口进行数据传输,并实现实时波形显示的初步开发过程。作者首先介绍了项目背景和进度,然后详细阐述了从准备CAN盒的二次开发例程,到在QT项目中添加头文件、库文件和DLL的步骤。在调试过程中,作者遇到并解决了32位与64位系统兼容性问题,最终成功实现了调试和运行。测试结果显示,正确配置32位DLL和库文件是关键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

    项目需要:采用串口和CAN作为传输口,将数据传输到QT并绘图画出其波形。基本要求参看《QT串口动态实时显示大量数据波形曲线(一)》

    项目进度:学习CAN编写程序+验证,估计消耗2周。

    基础掌握:在单片机或者ARM上已经掌握CAN通讯的基本常识。

    文章注意点:对于QT的基础学习不太精通,只能走一步算一波,文章会实时更新。

了解知识:

    关于dll文件:能够被多种软件(包含VC,PHP等软件)调用的函数。差不多可以理解为.C函数,只是为了省空间放在了一起,并且经过一系列的加密算法组成的一种文件。功能类似于c语言的.C文件。

    关于h文件:dll文件里面为函数主体,声明函数在h文件里,即:先声明一下有这个函数,函数的内容在dll文件里。

    关于lib文件:先这样理解:dll文件里面包含的文件太多,如果都包含进来的话,执行文件太大了,为了减小其大小,将用到的dll里面的函数入口放进lib文件里。什么时候需要调用就去lib里面找函数入口,然后链接到dll文件里。

    关于第二个dll文件:先这样理解:发布的时候不能将dll文件全部打包,只能打包用到的函数,这样会再搞个dll文件,将上面的dll文件中的用到的函数放进来,形成一个新的dll,配合lib文件使用。

QT中CAN第二次开发:

    (1)准备工作:can盒采用的北京爱泰科技的usbcan盒。到其官网下载二次开发例程即可。如果采用周立功的can盒,就去对应官方网站下载。

    有个QT的例程,还有个API文件夹,还有个pdf,这三个是能用的东西,其他的删了就行。

    先说下API文件夹,里面两个文件,一个是32位机器对应的,一个是64位机器对应的。至于你机器是32位的还是64位的,不能看网上介绍的我的电脑的属性,切记!!!

    (2)新建QT项目,这个就不说了,基本的步骤操作。然后将API里面的两个文件拷到含有main文件的文件夹里。

    这里的controlCAN.lib和controlCAN.h都是来自于API文件夹,不管哪个,先搞进来。

    (3)编译QT主程序,正常显示mainwindow窗口。在左侧项目栏里添加controlCAN.h文件。同时在主文件里添加#include "ControlCAN.h"。如图下图所示:

    然后controlCAN.h里面会出现一大堆错误。在里面添加下面include就可以解决数据类型的问题了。

#include "windows.h"

    (4)添加lib:在项目栏里右键,添加库。找到刚才拷进来的lib文件,添加进来。下面的三个都不选。

        (5)添加dll文件:添加完lib文件之后,会在pro文件里增加几句话。

win32: LIBS += -L$$PWD/./ -lControlCAN

INCLUDEPATH += $$PWD/.
DEPENDPATH += $$PWD/.

    这个时候看win32,不管是64位系统还是32位系统,都需要添加API中x86中的文件,即32位系统对应的文件。我的系统是64位的,但是添加x64对应的东西就是出错,将刚才添加的h文件和lib文件都变为32位系统文件夹下的文件。如果不对应win32的话,就会报错。

    这个时候编译文件,会发现系统不报错,还能弹出mainwindows窗口,说明添加h文件和lib文件正确。

    如果在“debug”模式下,在其文件夹对应exe的文件的地方,拷ControlCAN.dll和kerneldlls文件夹下的usbcan.dll文件(这个取决于你用的can盒)。放好后,可以debug了。然后不会报错。同时在

ui->setupUi(this);

下放入CAN文件的函数:

 VCI_OpenDevice(0, 0, 0);

发现可以debug,并且弹出mainwindow窗口。此时说明can文件的所有dll和h还有lib文件放置和运用正确。

    (6)测试:删除debug文件夹里的两个dll文件,可编译不可debug,说明放入的32位文件是对的,改为64位文件放进去,debug,出现未知错误。改会32位对应的dll文件,可编译可debug。删除h和lib文件,编译报错,恢复文件编译通过,说明添加正确。

    注:由于小伙伴需要源代码的时间不同,登录邮箱界面太多麻烦,所以建立了一个订阅号,如果有问题或者需要源码,可添加订阅号,留言后会发送源代码或者有任何问题可留言,将积极解决提出的问题。

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值