周立功CAN相关资源下载
首先,把下载的库函数文件(由上面链接下载)都放在工作目录下。库函数文件总共有三个文件:ControlCAN.h、
ControlCAN.lib、ControlCAN.dll 和一个文件夹 kerneldlls。

Module.bas 模块文件代码

'定义需要用到的数据结构
Public Type VCI_BOARD_INFOhw_Version As Integerfw_Version As Integerdr_Version As Integerin_Version As Integerirq_num As Integercan_num As Bytestr_Serial_Num(19) As Bytestr_hw_Type(39) As ByteReserved(3) As Integer
End TypePublic Type VCI_CAN_OBJID As LongTimeStamp As LongTimeFlag As ByteSendType As ByteRemoteFlag As ByteExternFlag As ByteDataLen As Bytedata(7) As ByteReserved(2) As Byte
End TypePublic Type VCI_CAN_STATUSErrInterrupt As ByteregMode As ByteregStatus As ByteregALCapture As ByteregECCapture As ByteregEWLimit As ByteregRECounter As ByteregTECounter As ByteReserved As Long
End TypePublic Type VCI_ERR_INFOErrCode As LongPassive_ErrData(2) As ByteArLost_ErrData As Byte
End TypePublic Type VCI_INIT_CONFIGAccCode As LongAccMask As LongReserved As LongFilter As ByteTiming0 As ByteTiming1 As ByteMode As Byte
End TypePublic Type VCI_FILTER_RECORDExtFrame As LongStart As LongEnd As Long
End TypeDeclare Function VCI_OpenDevice Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long, ByVal Reserved As Long) As LongDeclare Function VCI_CloseDevice Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long) As LongDeclare Function VCI_InitCAN Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long, ByVal CANInd As Long, ByRef InitConfig As VCI_INIT_CONFIG) As LongDeclare Function VCI_ReadBoardInfo Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long, ByRef info As VCI_BOARD_INFO) As LongDeclare Function VCI_ReadErrInfo Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long, ByVal CANInd As Long, ByRef ErrInfo As VCI_ERR_INFO) As LongDeclare Function VCI_ReadCANStatus Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long, ByVal CANInd As Long, ByRef CANStatus As VCI_CAN_STATUS) As LongDeclare Function VCI_GetReference Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long, ByVal CANInd As Long, ByVal RefType As Long, ByRef data As Any) As LongDeclare Function VCI_SetReference Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long, ByVal CANInd As Long, ByVal RefType As Long, ByRef data As Any) As LongDeclare Function VCI_GetReceiveNum Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long, ByVal CANInd As Long) As LongDeclare Function VCI_ClearBuffer Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long, ByVal CANInd As Long) As LongDeclare Function VCI_StartCAN Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long, ByVal CANInd As Long) As LongDeclare Function VCI_ResetCAN Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long, ByVal CANInd As Long) As LongDeclare Function VCI_Transmit Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long, ByVal CANInd As Long, ByRef Send As VCI_CAN_OBJ, ByVal length As Long) As LongDeclare Function VCI_Receive Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long, ByVal CANInd As Long, ByRef Receive As VCI_CAN_OBJ, ByVal length As Long, ByVal WaitTime As Long) As Long

窗体代码

'下面以USBCAN-I设备为例:Private Sub Form_Load()Dim InitConfig As VCI_INIT_CONFIGDim TX_frameinfo As VCI_CAN_OBJDim RX_frameinfo As VCI_CAN_OBJ
'初始化InitConfig.AccCode = &H0InitConfig.AccMask = &HFFFFFFFFInitConfig.Filter = 1InitConfig.Timing0 = &H1InitConfig.Timing1 = &H1CInitConfig.Mode = 0'发送帧信息TX_frameinfo.ID = &H18FF3010TX_frameinfo.SendType = 0TX_frameinfo.RemoteFlag = 0TX_frameinfo.ExternFlag = 1TX_frameinfo.DataLen = 8TX_frameinfo.data(0) = &H5TX_frameinfo.data(1) = &H1TX_frameinfo.data(2) = &H2TX_frameinfo.data(3) = &H3TX_frameinfo.data(4) = &H4TX_frameinfo.data(5) = &H5TX_frameinfo.data(6) = &H6TX_frameinfo.data(7) = &H7'发送与接收数据Debug.Print ("下面执行操作返回“1”表示操作成功!")Debug.Print VCI_OpenDevice(3, 0, 0)Debug.Print VCI_SetReference(3, 0, 0, 0, &H1C0008)Debug.Print VCI_InitCAN(3, 0, 0, InitConfig)Debug.Print VCI_StartCAN(3, 0, 0)Debug.Print VCI_ClearBuffer(3, 0, 0)Debug.Print VCI_Transmit(3, 0, 0, TX_frameinfo, 1)Debug.Print "CAN接收缓存帧数:" & VCI_GetReceiveNum(3, 0, 0)
'等待CAN缓存区收到数据While VCI_GetReceiveNum(3, 0, 0) <= 0Wend
'从CAN缓存区读出一帧数据Debug.Print VCI_Receive(3, 0, 0, RX_frameinfo, 100, 400)Dim rxstr As StringFor i = 0 To 7rxstr = rxstr & RX_frameinfo.data(i)NextDebug.Print "收到:" & rxstr
'关闭USBCANVCI_CloseDevice 3, 0End Sub

运行结果如下:

VB调用周立功CAN接口卡接口库函数相关推荐

  1. Python调用周立功CAN接口卡接口库函数(接收数据)

    上篇博文<Python调用周立功CAN接口卡接口库函数>仅做了发送数据例程,有网友在测试接收时出现了问题,在此给出自己的接收数据代码. 在此需要强调的是,因为经济水平有限,自己所使用的CA ...

  2. Python调用周立功CAN接口卡接口库函数

    偶尔会用到周立功CAN接口卡,于是试着使用Python调用其接口函数.查阅CAN测试软件与接口函数使用手册,只讲述了VC和VB的调用方法.在这里通过ctypes模块导入动态链接库并访问动态链接库中的函 ...

  3. Python周立功CAN接口卡接口库函数

    周立功CAN相关资源下载 首先,把下载的库函数文件(由上面链接下载)都放在工作目录下.库函数文件总共有三个文件:ControlCAN.h. ControlCAN.lib.ControlCAN.dll ...

  4. 调用python-can库使用周立功CAN接口卡发送数据

    查阅python-can文档,知晓其支持部分周立功CAN接口卡,故写例程验证数据的发送.另外,使用的python版本为3.4,在安装python-can时提示找不到windows-curses对应版本 ...

  5. labview can通讯上位机,调用周立功库文件

    labview can通讯上位机,调用周立功库文件. 能够基本通讯,可供学习参考. 适合小白上手,后期可以根据自己需求更改 ID:6917618516632702

  6. 周立功 zlg PCIe-9120I CAN卡无法使用python开启

    2018年走了- 2019年来了- 工作日第一天就排了一颗打雷- 前两天领导指派任务做一个仪表的上位机, 公司用的都是zlg的USB-CAN盒或者PCIe-CAN卡, 且官方提供的接口\例程都是非py ...

  7. 周立功CAN二次开发接口使用(C#)

    通过C#实现通讯: 1.建一个CANDevice实体类,传递一些参数,并且保存一些设备的型号.ID,以及波特率等参数 using System; using System.Collections.Ge ...

  8. Python基于周立功盒子接收特定报文信号并实时绘制折线图(二)

    Python基于周立功盒子接收特定报文信号并实时绘制折线图(二) 一.背景     根据在上一篇文件Python基于周立功盒子接收特定报文信号并实时绘制折线图(一)的基础上需要做一些优化,原因是,因为 ...

  9. 周立功 CAN PCI接口卡C#语言示例

    周立功CAN pci接口卡提供的示例代码都是VC,VB和Delphi的,没有C#.net的例子.但是在使用C#调用CAN api的时候,由于这些api对数据类型的校验非常严格,所以,调试起来比较麻烦. ...

  10. Python基于周立功盒子的二次开发的封装和调用

    Python基于周立功盒子的二次开发的封装和调用 一.介绍     前面我们介绍如何拿到官网给的例程并使用起来,但在使用的过程中,我们发现官网给的例子非常的冗长,可读性不好,于是我进行分解和封装,使得 ...

最新文章

  1. python时间日期字符串各种
  2. powershell 自动从组中移除禁用的账号
  3. CSS-布局样式之筛选条件右边线的处理方法(no CSS3)
  4. 【ubuntu-qt-dlib】 配置问题 (二) terminate called after throwing an instance of 'dlib::image_load_error'
  5. 保持危机感和紧迫感_什么是紧迫的:您需要知道的一切
  6. php中的echo、print,print_r、var_dump
  7. React开发(150):判断方法有避免报错
  8. 前端学习(530):等分布局得间距方案第二种方式
  9. Java RandomAccessFile readChar()方法及示例
  10. ELK采集之nginx 日志高德地图出城市IP分布图
  11. 基于JAVA+Servlet+JSP+MYSQL的旅游酒店机票预订管理系统
  12. 网页木马是什么原理?
  13. 项目管理44个过程输入输出工具技术巧记法
  14. 【转】未来10年经济走向及发展趋势
  15. Scratch幻影小猫 电子学会图形化编程scratch等级考试三级真题答案2019-9
  16. SIM卡无法识别经验案例
  17. windows7 系统下载
  18. tesseract-ocr .NET 识别图片中文字
  19. 【无标题】asdas
  20. Excel中VLOOKUP函数的详细用法(灰常有用,求加精!求加精!)

热门文章

  1. C++实现中值滤波算法
  2. 硬改intel网卡MAC地址
  3. C语言栈括号匹配算法
  4. linux 串口驱动
  5. 下载网页 TS视频并自动合成视频
  6. RT-Thread 应用篇 — 在STM32L051上使用 RT-Thread (三、无线温湿度传感器 之 I2C通讯)
  7. 多年iOS开发经验总结
  8. qt 获取屏幕句柄_VC中获取窗口句柄的各种方法
  9. c语言如何用编译器编辑,C语言编译器怎么用,C语言编译器使用教程
  10. 网络端口扫描器.扫描开放端口.TCP/UDP的Socket通信.支持IP地址网段范围的批量扫描.支持多线程操作,提高扫描效率