精华内容
下载资源
问答
  • USBCAN_E_U_drive,ZLG,周立功 CAN驱动,USBCAN_E_U的CAN盒的驱动
  • Linux周立功CAN驱动安装指导

    千次阅读 2019-01-04 21:58:07
    Linux周立功CAN驱动安装指导 安装 打开Linux终端,进入root模式 ①非永久模式,在命令前加sudo前缀 ②永久模式,在终端输入sudo su命令,再输入当前用户的密码,就可以以root身份登录到终端。 将sja1000.h复制到...

    Linux周立功CAN驱动安装指导

    • 安装
    1. 打开Linux终端,进入root模式

    ①非永久模式,在命令前加sudo前缀

    ②永久模式,在终端输入sudo su命令,再输入当前用户的密码,就可以以root身份登录到终端。

    1. 将sja1000.h复制到内核目录

    #cd (zpcican中Makefile所在目录)

    #cp sja1000.h /usr/src/your-kernel-source/drivers/net/can/sja1000/sja1000.h

    注:your-kernel-source,为内核目录源,通过cat /proc/vesion指令查看内核版本信息,再在usr/src(通常)下寻找和版本对应的内核目录。例如:内核版本信息为Linux version 4.40-141-generic。。。。,则在usr/src下的linux-headers-4.4.0-141-generic即为your-kernel-source。以上仅适用于Ubantu系统,在其他Linux系统未测试。

    1. 编辑Makefile,将KDIR更改为您的内核目录
    2. 编译并加载zpcican.ko

    #make

    #insmod zpcican.ko

    注:make完成后在zpcican文件夹下,可以看到生成zpcican.ko等文件

    若加载模块失败(insmod zpcican.ko失败):

    ①若报找不到insmod zpcican.ko,使用指令cp -r zpcican.ko /usr/src/linux-headers

    -4.4.0-141-generic,拷贝zpcican.ko到路径

    ②若报没找到模块,或缺乏(没找到)依赖项错误

    # modinfo ./zpcican.kolgrep depend 查看依赖项名称, 结果是---->depends:     依赖项名称(sja1000)

    # modprobe sja1000  加载依赖项

    #inmod ./zpcican.ko  再加载zpcican.ko模块

    ③若报无法插入模块zpcican.ko:无效模块格式

    应考虑,内核目录是否错误,重新查看内核版本,防止内核版本变更导致的错误

    1. 安装can-utils

    #apt-get update

    #apt-get install can-utils

    注:apt-get update的时间比较久,耐心等待

    1. 检查硬件

    #lspci -n

    出现如下图结果:

    1. 检查设备节点

    #ls / sys / class / net / can*

    出现如下图结果:

    • CAN接收发送测试
    1. 检测CAN是否连接

    #ip link show can0

    结果如下

    1. 设置can波特率

    # ip link set can0 type can bitrate 500000 triple-sampling on

    或者:#ip link set can0 type can bitrate 500000

    1. 使能CAN接口

    #ip link set can0 up

    或者:#ifconfig can0 up

    1. CAN接收测试

    用一转多,一头接待测试板卡CAN0,另一头接CAN-E-U卡,CAN-E-U接笔记本电脑,笔记本电脑端打开cantest,设置与CAN0相同的波特率,ID422,每次发送10帧,如下图所示;

    终端输入#candump can0指令进入等待接收模式,此时点击cantest发送按钮,在终端可以观察到如下结果:

    1. CAN发送测试

    在另一个终端输入#cangen can0 -g 4 -I 42A -L 1 -D i -v -v指令,可以在cantest观察到数据不停的接收。结果如下:

    同时在终端也可以看到数据的发送:

    1. 当can总线不再被需要或重新配置can(波特率)时,请关闭can接口
    展开全文
  • 周立功USB转CANII驱动(linux版本),可直接在linux下解压使用。周立功USB转CANII驱动(linux版本),可直接在linux下解压使用。
  • 周立功usbcan驱动

    2018-07-27 13:31:27
    周立功各种usbcan驱动!欢迎查看!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • 周立功CAN驱动2E-U

    2018-07-13 16:12:16
    周立功 USBCAN-2E-U CAN卡WINdows驱动,简单明了 内有详细安装说明
  • 周立功USB转CAN驱动

    2019-01-04 21:03:07
    工业用周立功USB转CAN驱动,方便下载使用,内含XP-Win7-Win8-32位64位驱动
  • 周立功can卡转usb驱动程序是一款靠谱的驱动软件,支持32位和64位操作系统,can卡具有强大的错误检测能力,灵活性强,使用这款驱动可以增强稳定性,需要的朋友快来下载吧!周立功can卡介绍周立功can卡是单机开发过程...
  • 周立功CAN卡 8EU 4 EU 驱动安装包 网盘链接: https://pan.baidu.com/s/1FezRq6hekfpdifyJMvQABw 密码: 02uj 或官网下载。 安装步骤:

    周立功CAN卡 8EU 4 EU 驱动安装包

    网盘链接: https://pan.baidu.com/s/1FezRq6hekfpdifyJMvQABw 密码: 02uj
    或官网下载。

    包中的sample可以用来参考改写驱动代码。

    安装步骤:
    在这里插入图片描述

    展开全文
  • 周立功CAN驱动C#调用方式

    千次阅读 2018-12-28 13:27:37
    #region CAN接受和发送数据定义         [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]   &...

    #region CAN接受和发送数据定义
            [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
            public struct PVCI_CAN_OBJ
            {
                public uint ID;
                public uint TimeStamp;
                public byte TimeFlag;
                public byte SendType;
                public byte RemoteFlag;
                public byte ExternFlag;
                public byte DataLen;
                [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
                public byte[] data;
                [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
                public byte[] Reserved;
            }
            #endregion

    #region 其他CAN函数数据定义
            public struct PVCI_ERR_INFO
            {
                public uint ErrCode;
                [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
                public byte[] Passive_ErrData;
                public byte ArLost_ErrData;
            }

    public struct _VCI_BOARD_INFO
            {
                public ushort hw_Version;
                public ushort fw_Version;
                public ushort dr_Version;
                public ushort in_Version;
                public ushort irq_Num;
                public byte can_Num;

    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
                public byte[] str_Serial_Num;
                [MarshalAs(UnmanagedType.ByValArray, SizeConst = 40)]
                public byte[] str_hw_Type;
                [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
                public ushort[] Reserved;
            }
            #endregion

    #region DLL连接
            //调用接受设备动态连接库
            [DllImport(“ControlCAN.dll”, EntryPoint = “VCI_Receive”, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
            public static extern uint VCI_Receive(int DevType, int DevIndex, int CANIndex, [Out] PVCI_CAN_OBJ[] pReceive, uint Len, int WaitTime);

    //调用报错动态连接库
            [DllImport(“ControlCAN.dll”, EntryPoint = “VCI_ReadErrInfo”, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
            public static extern int VCI_ReadErrInfo(int DevType, int DevIndex, int CANIndex,  PVCI_ERR_INFO pErrInfo);

    /关闭设备连接库/
            [DllImport(“ControlCAN.dll”, EntryPoint = “VCI_CloseDevice”, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
            public static extern bool VCI_CloseDevice(int DevType, int DevIndex);

    /CAN启动CAN连接库/
            [DllImport(“ControlCAN.dll”, EntryPoint = “VCI_StartCAN”, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
            public static extern int VCI_StartCAN(int DevType, int DevIndex, int CANIndex);

    /CAN发送连接库/
            [DllImport(“ControlCAN.dll”, EntryPoint = “VCI_Transmit”, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
            public static extern uint VCI_Transmit(int DevType, int DevIndex, int CANIndex, PVCI_CAN_OBJ[] pSend, uint Len);
            #endregion

    作者:leonid112
    来源:CSDN
    原文:https://blog.csdn.net/leonid112/article/details/5987555
    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • 周立功CAN卡64位驱动程序 / ********************************************* * * USBCAN-I/II 智能CAN接口卡配套光盘 * * 更新记录:2003-11-26 * ********************************************* / 更新日期: ...
  • 周立功CAN用户手册

    2018-03-21 16:54:31
    周立功CAN用户手册和驱动,周立功USBCANtest软件驱动,包括使用说明。
  • 周立功USBCAN xp驱动

    热门讨论 2012-11-12 10:45:12
    驱动周立功USBCAN收发器连接电脑用,可适用于xp、win7系统
  • 周立功CAN分析仪USBCAN_E_U Win7x64专用驱动
  • 周立功can转usb

    2014-01-24 10:33:28
    周立功can转USB驱动程序,本人亲测有效哦
  • 周立功的mini USBCAN 驱动程序
  • SUBSYSTEMS=="usb", ATTRS{idVendor}=="0471", ATTRS{idProduct}=="1200", GROUP="users", MODE="0666
  • 周立功PCI CAN卡 PCI9820i LINUX驱动 ubuntu 16.04 内核版本4.15 周立功PCI CAN卡 PCI9820i LINUX驱动 ubuntu 16.04 内核版本4.15 周立功PCI CAN卡 PCI9820i LINUX驱动 ubuntu 16.04 内核版本4.15 周立功PCI CAN卡 ...
  • 最近使用can分析仪作为机器人通信中枢,于是需要根据动态链接库进行二次开发,根据开发文档进行了二次开发,目前可以根据需求进行发送和接受。分析仪如图所示,Linux版本。想要的某宝可以随便买到。若需要整个驱动包...

    简介

    最近使用can分析仪作为机器人通信中枢,于是需要根据动态链接库进行二次开发。文中根据开发文档进行了二次开发,目前可以根据需求进行发送和接收。分析仪如图所示,Linux版本。想要的某宝可以随便买到。若需要整个驱动包及技术交流欢迎留言或者添加微信公众号获取,我有空会进行部分回答。后面会更新一个C++版本的驱动,需要C++的可以稍等或者发消息咨询。

    代码解释

    1,部分解释

    代码太长了,基本跟着二次开发库函数来的,注意该驱动支持周立功,只需要根据自己的机子分清楚是什么型号就行,比如USBCAN-2A,USBCAN-2C,CANalyst-II 的设备类型号都是4,大家是什么需要根据函数来改。基本多试试参数,参数一定要正确,代码基本没什么问题。

    2,关于日志和yaml部分

    代码对日志和YAML操作方式也进行了运用了,日志可以根据自己需求输出不同的颜色,希望对大家有帮助。有问题可以和我联系进行沟通。

    代码实例化

    这里代码实例化,实现的主要功能是,通过指令向一个can设备发一条命令,8个字节的字段,可以参考串口协议,类似的16进制,Can设备返回请求数据。在这里插入图片描述

    #! /usr/bin/env python
    # coding=utf-8
    from ctypes import *
    import yaml
    import os
    import logging
    from logging.handlers import RotatingFileHandler
    import os
    from math import pi
    from colorama import Fore, Style
    from command import *
    import time
    class VCI_BOARD_INFO(Structure):
        _fields_ = [('hw_Version',c_ushort),
                    ('fw_Version',c_ushort),
                    ('dr_Version',c_ushort),
                    ('in_Version',c_ushort),
                    ('irq_Num',c_ushort),
                    ('can_Num',c_byte),
                    ('str_Serial_Num',c_char*20),
                    ('str_hw_Type',c_char*40),
                    ('Reserved',c_ushort*4)
                                            ]
    class VCI_CAN_OBJ(Structure):
        _fields_ = [('ID',c_uint),
                    ('TimeStamp',c_uint),
                    ('TimeFlag',c_byte),
                    ('SendType',c_byte),
                    ('RemoteFlag',c_byte),
                    ('ExternFlag',c_byte),
                    ('DataLen',c_byte),
                    ('Data',c_ubyte*8),
                    ('Reserved',c_ubyte*3)
                                            ]
    class VCI_INIT_CONFIG(Structure):
        _fields_ = [('AccCode',c_uint),
                    ('AccMask',c_uint),
                    ('Reserved',c_uint),
                    ('Filter',c_ubyte),
                    ('Timing0',c_ubyte),
                    ('Timing1',c_ubyte),
                    ('Mode',c_ubyte)
                                            ]
    
    class CanAnalysisDriver:
        def __init__(self,configname):
            self.configname=configname
            self.OpreateCanAnalysis = cdll.LoadLibrary('../lib/libcontrolcan.so')
            self.yamlDic={}
            self.Opreating_Yaml()# init yaml
            
            self.logger = logging.getLogger()## 创建一个logger
            self.logger_init()
        def Opreating_Yaml(self):
            current_path = os.path.abspath("..")
            yaml_path = os.path.join(current_path, "config/"+self.configname)
            print yaml_path
            file_data = open(yaml_path)
            self.yamlDic = yaml.load(file_data)
            file_data.close()
        def logger_init(self):
            # Log等级总开关
            self.logger.setLevel(logging.DEBUG)
            # 再创建一个handler,用于输出到控制台
            ch = logging.StreamHandler()
    
            # 输出到console的log等级的开关
            ch.setLevel(logging.INFO)
    
            # 定义handler的输出格式
            formatter = logging.Formatter("%(asctime)s [%(thread)u] %(levelname)s: %(message)s")
            # 控制台输出设定格式
            ch.setFormatter(formatter)
            # 设置控制台输出到logger
            self.logger.addHandler(ch)
        def loggererror(self,message):
            self.logger.error(Fore.RED + "[ERROR] - " + str(message) + Style.RESET_ALL)
        def loggerinfo(self,message):
            self.logger.info(Fore.GREEN + "[INFO] - " + str(message) + Style.RESET_ALL)
        def loggerwarning(self,message):
            self.logger.warning()(Fore.YELLOW + "[WARNNING] - " + str(message) + Style.RESET_ALL)
        def Init_node(self,):
            pass
        def Can_VCIOpenDevice(self):
            Canstatus=self.OpreateCanAnalysis.VCI_OpenDevice(self.yamlDic['nDeviceType'],self.yamlDic['nDeviceInd'],0)
            if Canstatus==0:
                self.loggererror("Open Can Analysis device error")
                self.loggerinfo(Canstatus)
            elif Canstatus== -1:
                self.loggererror("Can analysis offline")
                self.loggerinfo(Canstatus)
            else:
                self.loggerinfo("Can Analysis Open Success!")
                self.loggerinfo(Canstatus)
                return True
        def Can_VCICloseDevice(self):
            Canstatus=self.OpreateCanAnalysis.VCI_CloseDevice(self.yamlDic['nDeviceType'],self.yamlDic['nDeviceInd'])
            if Canstatus==0:
                self.loggererror("Close can analysis device error!")
                self.loggerinfo(Canstatus)
            elif Canstatus== -1:
                self.loggererror("Can analysis offline!")
                self.loggerinfo(Canstatus)
            else:
                self.loggerinfo("Can Analysis Close Success!!")
                self.loggerinfo(Canstatus)
                return True  
        def Can_VCIInitCan_PyInit(self,CanInd,VCI_INIT_CONFIG_STRUC):
            
            CanFuncStruc=self.OpreateCanAnalysis.VCI_InitCAN#(self.yamlDic['nDeviceType'],self.yamlDic['nDeviceInd'],CanInd,)
            CanFuncStruc.restype = c_uint
            CanFuncStruc.argtypes=[c_uint,c_uint,c_uint,POINTER(VCI_INIT_CONFIG)]
            return CanFuncStruc(self.yamlDic['nDeviceType'],self.yamlDic['nDeviceInd'],CanInd,byref(VCI_INIT_CONFIG_STRUC))
        def Can_VCIInitCan(self,CanInd):
            config=VCI_INIT_CONFIG()
            config.AccCode = 0x00000000
            config.AccMask = 0xFFFFFFFF
            config.Filter = 0
            config.Mode = 0
            config.Timing0 = 0x00
            config.Timing1 = 0x1c
            #print(config)
            Canstatus=self.Can_VCIInitCan_PyInit(CanInd,config)
            if Canstatus==0:
                self.loggererror("Init Can analysis device error!")
                self.loggerinfo(Canstatus)
            elif Canstatus== -1:
                self.loggererror("Can analysis offline!")
                self.loggerinfo(Canstatus)
            else:
                self.loggerinfo("Can Analysis Init Success!!")
                self.loggerinfo(Canstatus)
                return True   
        def Can_ReadBoardInfo_PyInit(self,VCI_BOARD_INFO_STRUC):
            CanFuncStruc=self.OpreateCanAnalysis.VCI_ReadBoardInfo#(self.yamlDic['nDeviceType'],self.yamlDic['nDeviceInd'],CanInd,)
            CanFuncStruc.restype = c_uint
            CanFuncStruc.argtypes=[c_uint,c_uint,POINTER(VCI_BOARD_INFO)]
            return CanFuncStruc(self.yamlDic['nDeviceType'],self.yamlDic['nDeviceInd'],byref(VCI_BOARD_INFO_STRUC))
        def Can_ReadBoardInfo(self):
            config=VCI_BOARD_INFO()
            Canstatus=self.Can_ReadBoardInfo_PyInit(config)
    
            print(config.can_Num)
            if Canstatus==0:
                self.loggererror("Read Board Info Can analysis device error!")
                self.loggerinfo(Canstatus)
            elif Canstatus== -1:
                self.loggererror("Can analysis offline!")
                self.loggerinfo(Canstatus)
            else:
                self.loggerinfo("Can Analysis Read Board Info Success!!")
                self.loggerinfo(Canstatus)
                self.loggerinfo("Can Analysis Board Info like:")
                self.loggerinfo("hw_Version: "+str(config.hw_Version))
                self.loggerinfo("fw_Version: "+str(config.fw_Version))
                self.loggerinfo("dr_Version: "+str(config.dr_Version))
                self.loggerinfo("in_Version: "+str(config.in_Version))
                self.loggerinfo("irq_Num: "+str(config.irq_Num))
                self.loggerinfo("can_Num: "+str(config.can_Num))
                self.loggerinfo("str_Serial_Num: "+str(config.str_Serial_Num))
                self.loggerinfo("str_hw_Type: "+str(config.str_hw_Type))
                self.loggerinfo("Reserved: "+str(config.Reserved))
    
                return Canstatus 
        def Can_GetReceiveNum(self,CanInd):
            Canstatus=self.OpreateCanAnalysis.VCI_GetReceiveNum(self.yamlDic['nDeviceType'],self.yamlDic['nDeviceInd'],CanInd)
            if Canstatus== -1:
                self.loggererror("Can analysis offline!")
                self.loggerinfo(Canstatus)
            elif Canstatus==0:
                self.loggererror("Can Analysis Get Receive Num No data")
                self.loggererror(Canstatus)
            else:
                self.loggerinfo("Can Analysis Get Receive Num Success!!")
                self.loggerinfo(Canstatus)
                return Canstatus  
        def Can_ClearBuffer(self,CanInd):
            Canstatus=self.OpreateCanAnalysis.VCI_ClearBuffer(self.yamlDic['nDeviceType'],self.yamlDic['nDeviceInd'],CanInd,)
            if Canstatus==0:
                self.loggererror("Clear Buffer Can analysis device error!")
                self.loggerinfo(Canstatus)
            elif Canstatus== -1:
                self.loggererror("Can analysis offline!")
                self.loggerinfo(Canstatus)
            else:
                self.loggerinfo("Can Analysis Clear Buffer Success!!")
                self.loggerinfo(Canstatus)
                return True  
        def Can_StartCAN(self,CanInd):
            Canstatus=self.OpreateCanAnalysis.VCI_StartCAN(self.yamlDic['nDeviceType'],self.yamlDic['nDeviceInd'],CanInd,)
            if Canstatus==0:
                self.loggererror("Start Can analysis device error!")
                self.loggerinfo(Canstatus)
            elif Canstatus== -1:
                self.loggererror("Can analysis offline!")
                self.loggerinfo(Canstatus)
            else:
                self.loggerinfo("Can Analysis Start Success!!")
                self.loggerinfo(Canstatus)
                return True  
        def Can_ResetCAN(self,CanInd):
            Canstatus=self.OpreateCanAnalysis.VCI_ResetCAN(self.yamlDic['nDeviceType'],self.yamlDic['nDeviceInd'],CanInd,)
            if Canstatus==0:
                self.loggererror("Reset Can analysis device error!")
                self.loggerinfo(Canstatus)
            elif Canstatus== -1:
                self.loggererror("Can analysis offline!")
                self.loggerinfo(Canstatus)
            else:
                self.loggerinfo("Can Analysis Reset Success!!")
                self.loggerinfo(Canstatus)
                return True  
        def Can_Transmit_PyInit(self,CanInd,Length,VCI_CAN_OBJ_STRUC):
            CanFuncStruc=self.OpreateCanAnalysis.VCI_Transmit#(self.yamlDic['nDeviceType'],self.yamlDic['nDeviceInd'],CanInd,)
            CanFuncStruc.restype = c_uint
            CanFuncStruc.argtypes=[c_uint,c_uint,c_uint,POINTER(VCI_CAN_OBJ),c_uint]
            return CanFuncStruc(self.yamlDic['nDeviceType'],self.yamlDic['nDeviceInd'],CanInd,byref(VCI_CAN_OBJ_STRUC),Length)
        def Can_Transmit(self,CanInd,Length,IDD,Datalen,SenData,):
            #for i in range(Length):
            config=VCI_CAN_OBJ()
            config.ID=IDD
            config.RemoteFlag=0
            config.ExternFlag =0
            config.SendType = 0
            config.DataLen = Datalen
            config.Data=SenData
            self.loggerinfo(SenData)
            
            Canstatus=self.Can_Transmit_PyInit(0,8,config)
            time.sleep(0.1)
            if Canstatus== -1:
                self.loggererror("Can analysis offline!")
                self.loggererror(Canstatus)
            elif Canstatus==0:
                self.loggererror("Can analysis Transmit No data")
                self.loggererror(Canstatus)
            else:
                self.loggerinfo("Can Analysis Data Transmit Success!!")
                self.loggerinfo(Canstatus)
                return Canstatus  
        def Can_Receive_PyInit(self,CanInd,Len,WaitTime,VCI_CAN_OBJ_STRUC):
            CanFuncStruc=self.OpreateCanAnalysis.VCI_Receive#(self.yamlDic['nDeviceType'],self.yamlDic['nDeviceInd'],CanInd,)
            CanFuncStruc.restype = c_uint
            CanFuncStruc.argtypes=[c_uint,c_uint,c_uint,POINTER(VCI_CAN_OBJ),c_ulong,c_int]
            return CanFuncStruc(self.yamlDic['nDeviceType'],self.yamlDic['nDeviceInd'],CanInd,byref(VCI_CAN_OBJ_STRUC),Len,WaitTime)
    
     
        def Can_Receive(self,CanInd,Len):
            config=VCI_CAN_OBJ()
            Canstatus=self.Can_Receive_PyInit(CanInd,Len,0,config)
            if Canstatus== -1:
                self.loggererror("Can analysis offline!")
                self.loggererror(Canstatus)
            elif Canstatus==0:
                self.loggererror("Can Analysis Receive No data!!")
                self.loggererror(Canstatus)
            else:
                self.loggerinfo("Can Analysis Receive Success!!")
                self.loggerinfo(Canstatus)
                return Canstatus,config
        def Can_VCI_UsbDeviceReset(self):
            Canstatus=self.OpreateCanAnalysis.VCI_UsbDeviceReset(self.yamlDic['nDeviceType'],self.yamlDic['nDeviceInd'],0)
            if Canstatus==0:
                self.loggererror("Reset USB Can analysis device error!")
                self.loggerinfo(Canstatus)
            elif Canstatus== -1:
                self.loggererror("Can analysis offline!")
                self.loggerinfo(Canstatus)
            else:
                self.loggerinfo("Can Analysis Reset USB Success!!")
                self.loggerinfo(Canstatus)
                return True  
    def main():
        configname="mobileparameter.yaml"
        md=CanAnalysisDriver(configname)
        # md.Opreating_Yaml()
        md.loggerinfo(md.yamlDic)
        
        md.Can_VCIOpenDevice()
        md.Can_VCIInitCan(0)
        md.Can_StartCAN(0)
        md.Can_ResetCAN(0)
        md.Can_ReadBoardInfo()
        comd=MobileDriverCommands()
        md.Can_Transmit(0,1,1,8,comd.REQUEST_ENCODER_1)
        time.sleep(0.3)
        renum=md.Can_GetReceiveNum(0)
        ret,kk=md.Can_Receive(0,1)
    
        while renum:
            
            transmit_status=md.Can_Transmit(0,1,1,8,comd.REQUEST_ENCODER_1)
            if transmit_status:
                # time.sleep(0.1)
                ret,kk=md.Can_Receive(0,1)
                if ret:
                    if list(kk.Data)[0]!=0 and list(kk.Data)[0]!=127:
                        print('my data 1',list(kk.Data))
                        print(kk.DataLen)
            else:
                print('my data 2',list(kk.Data))
                print(kk.DataLen)
            transmit_status=md.Can_Transmit(0,1,2,8,comd.REQUEST_ENCODER_2)
            if transmit_status:
                # time.sleep(0.1)
                ret,kk=md.Can_Receive(0,1)
                if ret:
                    if list(kk.Data)[0]!=0 and list(kk.Data)[0]!=127:
                        print('my data 2',list(kk.Data))
                        print(kk.DataLen)
            else:
                print('my data 2',list(kk.Data))
                print(kk.DataLen)
            transmit_status=md.Can_Transmit(0,1,3,8,comd.REQUEST_ENCODER_3)
            if transmit_status:
                # time.sleep(0.1)
                ret,kk=md.Can_Receive(0,1)
                if ret:
                    if list(kk.Data)[0]!=0 and list(kk.Data)[0]!=127:
                        print('my data 3',list(kk.Data))
                        print(kk.DataLen)
            else:
                print('my data 3',list(kk.Data))
                print(kk.DataLen)
            transmit_status=md.Can_Transmit(0,1,4,8,comd.REQUEST_ENCODER_4)
            if transmit_status:
                # time.sleep(0.1)
                ret,kk=md.Can_Receive(0,1)
                if ret:
                    if list(kk.Data)[0]!=0 and list(kk.Data)[0]!=127:
                        print('my data 4',list(kk.Data))
                        print(kk.DataLen)
            else:
                print('my data 4',list(kk.Data))
                print(kk.DataLen)
        md.Can_VCICloseDevice()
    if __name__=="__main__":
        main()
    
    展开全文
  • 周立功CAN盒使用范例C#

    热门讨论 2010-11-22 10:09:07
    周立功CAN驱动使用范例,包括设置、接受、发送等各种常用操作
  • 周立功的usbcan产品完整的驱动及资料,包括了接口函数、驱动、测试软件等。
  • 周立功usb板卡的win7/vista驱动,包含32位和64位驱动。 版本1.9 不需要安装包安装。 直接插入usbcan板卡,系统会自动安装驱动。指定解压后的驱动目录进行搜索,可以成功安装。 注:不要将解压后的驱动和系统文件拷贝...
  • 周立功CAN基础-芯片篇

    2009-08-18 21:53:00
    CAN的2.0规范和几种功能典型且流行的CAN控制器和驱动器的详细资料;在作者实验和开发应用CAN技术的成果基础上,详细介绍了CAN的应用开发技术,从硬件的设计到各个基本软件功能模块的编写,其中包括CAN控制器与单片机...

空空如也

空空如也

1 2 3 4
收藏数 72
精华内容 28
关键字:

周立功can驱动