资源简介
资源为QT显示调用周立功CAN卡实例。因为自己学习QT的时间并不长,有很多不懂的,为了解决qt调用CAN卡第三方库花了很长时间,后来发现其实很简单,只是步骤有些许繁琐。先将一个简单实例共享,希望为大家提供便利。关于调用第三方库可以访问博客
代码片段和文件信息
#include “mainwindow.h“
#include “ui_mainwindow.h“
#include
#include
#include
#include
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
ui(new Ui::MainWindow)
{
ui->setupUi(this);
devtype=4;//设备类型can2
devind=0;//设备索引号
res=0;
canind=1;//第2路CAN
reftype=0;//参数类型
bool ok;
VCI_ERR_INFO vei;
VCI_CAN_OBJ preceive[100];
VCI_CAN_OBJ psend;
int baud=0x10000000;//参数有关数据缓冲区地址首指针
//导入库
QLibrary lib(“usbcan.dll“);
if(true==lib.load())
qDebug()<<“dll load ok“;
QTimer *timer=new QTimer;
pOpenDevice = (VCI_OpenDevice *)lib.resolve(“VCI_OpenDevice“);
pCloseDevice = (VCI_CloseDevice *)lib.resolve(“VCI_CloseDevice“);
pInitCAN = (VCI_InitCAN *)lib.resolve(“VCI_InitCAN“);
pStartCAN = (VCI_StartCAN *)lib.resolve(“VCI_StartCAN“);
pTransmitCAN = (VCI_Transmit *)lib.resolve(“VCI_Transmit“);
pReceive = (VCI_Receive *)lib.resolve(“VCI_Receive“);
pGetReceiveNum = (VCI_GetReceiveNum *)lib.resolve(“VCI_GetReceiveNum“);
pClearBuffer = (VCI_ClearBuffer *)lib.resolve(“VCI_ClearBuffer“);
pReadErrInfoCAN = (VCI_ReadErrInfo*)lib.resolve(“VCI_ReadErrInfo“);
pResetCAN=(VCI_ResetCAN *)lib.resolve(“VCI_ResetCAN“);
pSetReference=(VCI_SetReference *)lib.resolve(“VCI_SetReference“);
pReadBoardInfo=(VCI_ReadBoardInfo *)lib.resolve(“VCI_ReadBoardInfo“);
pReadCANStatus=(VCI_ReadCANStatus *)lib.resolve(“VCI_ReadCANStatus“);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_openCanBtn_2_clicked()//启动设备并初始化
{
bool ok;
VCI_ERR_INFO vei;
VCI_CAN_OBJ preceive[100];
VCI_CAN_OBJ psend;
int baud=0x10000000;//参数有关数据缓冲区地址首指针
//打开设备
if(pOpenDevice(devtypedevindres)==STATUS_ERR )
{
if(pReadErrInfoCAN(devtypedevindcanind&vei)!=STATUS_ERR)
{
qDebug()<<“打开失败:“< }else
qDebug()<<“error“;
return;
}else
qDebug()<<“open successed“;
//初始化
VCI_INIT_CONFIG init_config;
init_config.Mode=0;//正常模式,1为只听模式
init_config.Filter=1;//滤波方式,单滤波
init_config.Timing0=01;//定时器0
//init_config.Timing1=1C;//定时器1
init_config.AccCode=0x10000000;//验收码
init_config.AccMask=0xFFFFFFFF;//屏蔽码
if(pInitCAN(devtypedevindcanind&init_config)==STATUS_ERR){
qDebug(“Init Error“);
pCloseDevice(devtypedevind);
return;
}else
qDebug()<<“Init successed“;
//读取设备信息
VCI_BOARD_INFO vbi;
if(pReadBoardInfo(devtypedevind&vbi)!=STATUS_ERR){
qDebug()<<“CAN通道数:“< qDebug()<<“硬件版本号:“< qDebug()<<“接口库版本号:“< qDebug()<<“中断号“< }
//设置设备参数
if(pSetReference(devtypedevindcanindreftype&baud)==STATUS_ERR){
qDebug(“set reference error“);
pCl
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5194 2017-09-20 11:10 ControlCAN.h
文件 6079 2017-10-23 15:08 mainwindow.cpp
文件 2519 2017-09-25 13:42 mainwindow.h
文件 45056 2016-10-12 00:46 usbcan.dll
文件 53248 2005-07-01 10:13 ControlCAN.dll
----------- --------- ---------- ----- ----
112096 5
- 上一篇:boson6.0注册机
- 下一篇:标准计算器及科学计算器源代码
相关资源
- 使用Qt实现可编辑的画图程序
- 使用Qt实现简单的画图程序
- Qt5.X的linuxfb平台源码补丁包
- Qt之QDoubleSlider 继承QSlider的双向滑块
- qt实现modbus
- 在QT中使用visp库来抓取pylon相机的测试
- 基于qt的闹钟
- QWebEngineView使用,点击链接,上一页,
- [QT]获取鼠标坐标以及按键响应
- 基于qt做的画板
- Qt 多线程访问同一个变量
- 基于QT图形界面的GPS导航软件系统的设
- Qt一步一步实现插件通信
- Qt4 百度地图 定位
- Qt绘制编辑移动矢量图形
- Qt5 qml TreeView 迄今为止功能最全的树控
- QML自定义菜单样式
- QT计算器功能全实现 支持15位小数
- Qt编写串口调试助手V2016终结版
- 基于qt4串口调试助手
- QtQuick实现无边框窗口的拉伸,拖拽
- vs+Qt 实现版本中英文切换
- Qt StackWidget切换动画
- qt网络五子棋
- QWidget实现QDialog的exec方法
- qt_zmq.zip
- 模拟微波炉的桌面小程序qt,qp状态机
- Qt spi测试
- QT自定义多行表头
- QT简单程序源码——猜字游戏
评论
共有 条评论