Qt开发CAN通信的环境配置
目录
1 开发环境 1
1.1 编程环境 1
1.2 工程设置 1
1.3 调试窗口设置 2
1.4 依赖库 2
1.5 源代码的适配 3
2 运行及硬件环境 3
2.1 CAN设备 3
2.4 运行支持文件 3
3 故障解决 4
3.1 转到槽函数失败 4
1 开发环境
1.1 编程环境
工程采用Windows系统下的Qt Creator开发环境,Qt版本5.12.7(Qt5的较新版,Bug较少,支持串口库,图形库QChart),安装文件可在大学的镜像服务器上下载,安装的编译器建议采用MinGW32/64 。如果需要支持Windows XP系统则需要下载5.7.0或之前的版本。
1.2 工程设置
工程设置:在XXXX.pro文件中添加下面两行:
CONFIG += console #显示控制台提示窗口,以方便调试,注释掉即可不显示黑色命令提示框
#RC_ICONS = yuan.ico该行用于添加应用程序图标
如果有第三方单独提供的头文件引用,则可以采用INCLUDE加入.h 文件的引用路径.
#INCLUDEPATH += ./GYCan
如果使用第三方提供的运行库,则需要使用LIBS,按照相对路径加入如下命令。
#Prompt: LIBS+= is for .a(MinGW) or .lib(msvc) file, NOT for .dll file.
LIBS += -L"KaTeX parse error: Expected 'EOF', got '#' at position 25: …32/" -lVCI_CAN #̲LIBS += -L"PWD/GYCan64/" -lVCI_CAN
其中PWD是指源代码的.pro工程文件所在的路径,后面的库名称第一个字母必须是小写的l,并去掉后缀名。
若提示路径找不到,可改成绝对路径。
#QT += serialport #添加Qt串口支持
1.3 调试窗口设置
QT中,使用qDebug()输出调试打印信息。在开发时候,打开调试窗口,以便调试程序。待发布时,在去掉调试窗口功能。
打开的方式:在XXX(项目名).pro文件中,需要在最后一行添加:
CONFIG += console
同时,在“项目”的“Run运行”或“运行和构建”设置中,选择Run in terminal和Add build library search path to PATH, 如下:
还需要重新清理下项目,在重新编译就可以了。
1.4 LIB依赖库
本程序依赖CAN适配器厂家提供的开发库及驱动程序。
先安装厂家提供的驱动程序,并打开测试程序,可以使用之后,再导入开发库文件。
在.pro文件中添加如下路径:
LIBS += -L"$$PWD/GYCan32/" -lVCI_CAN
吉阳光电的设备开发时需要.lib文件VCI_CAN.lib
周立功的设备开发时需要.lib文件ControlCAN.lib
注意区别DLL文件和LIB文件:
在运行时,采用的是DLL文件,开发时采用的是.lib文件和.h文件。
吉阳光电的CAN设备运行时需要VCI_CAN.dll和SiUSBXp.dll
周立功的CAN适配器运行时需要的是ControlCAN.dll和kerneldlls目录
注意DLL文件区分32位或64位,需要注意两者必须匹配。建议采用32位。
1.5 源代码的适配
在直接用Qt打开源代码工程时,由于环境变化了,可能会提示如下窗口:
点击配置即可。
如果出现不兼容的情况,可删除项目源代码目录下的XXXX.pro.user文件名。
2 运行及硬件环境
2.1 CAN设备
该程序的正确运行,需要CAN硬件设备。请先将CAN适配器厂家提供的驱动程序按照说明书安装完毕,并运行测试程序,查看是否可以正常工作。
具体安装方式可看厂家提供资料,本处略。
2.4 运行支持文件
生成的exe文件,需要添加QT的库及第三方厂家提供的库之后,方可正常运行。Qt的库可以在系统的开始菜单下,找到Qt程序安装时生成的命令行窗口(不同的编译环境下有不同的命令行)打开命令行终端后,输入windeployqt E:\exe\xxxx.exe回车,其中xxxx.exe为编译后生成的.exe文件。(具体请参考程序发布部署方法)
第三方厂家提供的库有:
吉阳光电的CAN设备运行时需要VCI_CAN.dll和SiUSBXp.dll
周立功的CAN适配器运行时需要的是ControlCAN.dll和kerneldlls目录
注意DLL文件区分32位或64位,需要注意两者必须匹配。建议采用32位。
本程序在运行时会自动生成一个配置文件.ini。配置文件和exe同一个文件(在工程debug调试时可能为build路径).ini文件的内容如下:
[General]
devType=4
devIndex=0
canChannel=0
canMode=0
strCanBaudRate=500Kbps
isFoldRepeat=false
3 故障解决
3.1 转到槽函数失败
现象:在界面文件中,点击控件的右键,“转到槽函数”时,出现失败。
转到槽函数失败时,需要删除项目根目录下的XXXX.pro.user.xxx文件并重启qtcreator