周立功USBCAN-II 上位机开发(MFC)

使用的USB转CAN的设备是周立功的USBCAN-II,在购买的时候,会有上位机二次开发的库文件、例程和API文档等材料,可以参考。1、库函数的调用首先,把库函数文件都放在工作目录下。库函数文件总共有三个文件:ControlCAN.h、ControlCAN.lib、ControlCAN.dll和一个文件夹kerneldlls。VC调用动态库的方法(1) 在扩展名为.CPP的文件中包...
摘要由CSDN通过智能技术生成

使用的USB转CAN的设备是周立功的USBCAN-II,在购买的时候,会有上位机二次开发的库文件、例程和API文档等材料,可以参考。

1、库函数的调用

首先,把库函数文件都放在工作目录下。库函数文件总共有三个文件:ControlCAN.h、ControlCAN.lib、ControlCAN.dll和一个文件夹kerneldlls。

VC调用动态库的方法

(1) 在扩展名为.CPP的文件中包含ControlCAN.h头文件。
如:#include “ControlCAN.h”
(2) 在工程的连接器设置中连接到ControlCAN.lib文件。
如:在VC7环境下,在项目属性页里的配置属性→连接器→输入→附加依赖项中添加ControlCAN.lib

 

中间换了一台电脑,出现电脑丢失ControlCAN.dll的问题,将ControlCAN.dll拷到了可执行文件的文件夹中即可

 

2、基本操作

2.1 连接设备

 我这里每次连接都会重新开启接收数据的线程,创建一次接收数据的txt文档

void CTest_OilDlg::OnBnClickedButtonConnect()
{
    //首先判断CAN是否打开,,如果已经打开,则先复位及重启CAN--1.8
    //关闭程序前必须点击断开连接按钮,否则报错
    if(m_connect == 1)
    {
        m_connect = 0;
        //isShow = 0;
        Sleep(500);

        GetDlgItem(IDC_BUTTON_CONNECT)->SetWindowTextW(_T("连接"));
        VCI_CloseDevice(m_deviceType,m_deviceIndex);

        showListInfo(_T("断开设备成功"));

        //结束自发自收测试的定时器
        KillTimer(0);
        //结束当前线程
        if(m_pThread != NULL)
        {
            //::WaitForSingleObject(m_pThread->m_hThread,INFINITE);//该函数会造成死锁
            //https://blog.csdn.net/silvervi/article/details/5874212  将上面函数修改成如下,以避免上面函数阻塞对话框主线程的消息队列
            DWORD dwRet = 0;
            MSG msg;
            while(true)
            {
                //等待处理数据线程结束,和等待消息队列中的任何消息
                dwRet = MsgWaitForMultipleObjects(1,&m_pThread->m_hThread,false,INFINITE,QS_ALLINPUT);
                //dwRet = WaitForSingleObject(m_pThread->m_hThread,50);
                switch (dwRet)
                {
                case WAIT_OBJECT_0:
                        break;
                case WAIT_OBJECT_0 + 1:
                    //get the message from Queue and dispatch it to specific window
                    PeekMessage(&msg,NULL,0,0,PM_REMOVE);
                    DispatchMessage(&
  • 1
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值