資源簡介
資源為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注冊機
- 下一篇:標準計算器及科學計算器源代碼
評論
共有 條評論