沈阳广成科技有限公司沈阳市皇姑区蒲河街109号024-88760070(ECAN.dll)接口函数库使用手册V3.4沈阳广成科技有限公司沈阳市皇姑区蒲河街109号024-88760070.接口函数库说明及其使用1.1.接口卡设备类型定义各个接口卡的类型定义如下:设备名称设备类型号USBCAN11USBCAN221.2.错误码定义名称值描述ERR_CAN_OVERFLOW0x00000001CAN控制器内部FIFO溢出ERR_CAN_ERRALARM0x00000002CAN控制器错误报警ERR_CAN_PASSIVE0x00000004CAN控制器消极错误ERR_CAN_LOSE0x00000008CAN控制器仲裁丢失ERR_CAN_BUSERR0x00000010CAN控制器总线错误ERR_CAN_REG_FULL0x00000020CAN接收寄存器满ERR_CAN_REC_OVER0x00000040CAN接收寄存器溢出ERR_CAN_ACTIVE0x00000080CAN控制器主动错误ERR_DEVICEOPENED0x00000100设备已经打开ERR_DEVICEOPEN0x00000200打开设备错误ERR_DEVICENOTOPEN0x00000400设备没有打开ERR_BUFFEROVERFLOW0x00000800缓冲区溢出ERR_DEVICENOTEXIST0x00001000此设备不存在ERR_LOADKERNELDLL0x00002000装载动态库失败ERR_CMDFAILED0x00004000执行命令失败错误码ERR_BUFFERCREATE0x00008000内存不足ERR_CANETE_PORTOPENED0x00010000端口已经被打开ERR_CANETE_INDEXUSED0x00020000设备索引号已经被占用沈阳广成科技有限公司沈阳市皇姑区蒲河街109号024-88760070信息帧。typedefstruct_CAN_OBJ{UINTID;UINTTimeStamp;BYTETimeFlag;BYTERemoteFlag;BYTEExternFlag;BYTEDataLen;BYTEData[8];BYTEReserved[2];}CAN_OBJ,*PCAN_OBJ;成员ID报文ID。TimeStamp接收到信息帧时的时间标识,从CAN控制器初始化开始计时。TimeFlag是否使用时间标识,为1时TimeStamp有效,TimeFlag和TimeStamp只在此帧为接收帧时有意义。RemoteFlag是否是远程帧。ExternFlag是否是扩展帧。DataLen数据长度(=8),即Data的长度。Data报文的数据。Reserved系统保留。沈阳广成科技有限公司沈阳市皇姑区蒲河街109号024-88760070的配置。结构体将在InitCan函数中被填充。typedefstruct_INIT_CONFIG{DWORDFilterStart;DWORDFilterEnd;UCHARFilter;DWORDReserved;UCHARBaud;UCHARMode;}INIT_CONFIG,*P_INIT_CONFIG;成员FilterStart滤波范围开始id。FilterEnd滤波范围结束id。Reserved保留。Filter滤波使能。Baud波特率。Mode模式。备注Baud几种常见的波特率设置如下:CAN波特率Baud值5Kbps0x0E10Kbps0x0D20Kbps0x0C40Kbps0x0B50Kbps0x0A80Kbps0x09100Kbps0x08125Kbps0x07200Kbps0x06250Kbps0x05400Kbps0x04500Kbps0x03666Kbps0x02800Kbps0x011000Kbps0x00沈阳广成科技有限公司沈阳市皇姑区蒲河街109号024-88760070库运行时产生的错误信息。结构体将在ReadErrInfo函数中被填充。typedefstruct_ERR_INFO{UINTErrCode;BYTEPassive_ErrData[3];BYTEArLost_ErrData;}ERR_INFO,*P_ERR_INFO;成员ErrCode错误码。Passive_ErrData当产生的错误中有消极错误时表示为消极错误的错误标识数据。ArLost_ErrData当产生的错误中有仲裁丢失错误时表示为仲裁丢失错误的错误标识数据。沈阳广成科技有限公司沈阳市皇姑区蒲河街109号024-88760070描述此函数用以打开设备。DWORD__stdcallOpenDevice(DWORDDevType,DWORDDevIndex,DWORDReserved);参数DevType设备类型号。DevIndex设备索引号,比如当只有一个设备时,索引号为0,有两个时可以为0或1。Reserved预留返回值为1表示操作成功,0表示操作失败。示例#includeECan.hintnDeviceType=1;/*usbcan1*/intnDeviceInd=0;/*device0*/intnReserved=0;/*Reserved*/DWORDdwRel;dwRel=OpenDevice(nDeviceType,nDeviceInd,nReserved);if(dwRel!=STATUS_OK){MessageBox(_T(打开设备失败!),_T(警告),MB_OK|MB_ICONQUESTION);returnFALSE;}沈阳广成科技有限公司沈阳市皇姑区蒲河街109号024-88760070描述此函数用以关闭设备。DWORD__stdcallCloseDevice(DWORDDevType,DWORDDevIndex);参数DevType设备类型号。DevIndex设备索引号,比如当只有一个设备时,索引号为0,有两个时可以为0或1。返回值为1表示操作成功,0表示操作失败。示例#includeECan.hintnDeviceType=1;//USBCANintnDeviceInd=0;//DEVICE0BOOLbRel;bRel=CloseDevice(nDeviceType,nDeviceInd);沈阳广成科技有限公司沈阳市皇姑区蒲河街109号024-88760070。DWORD__stdcallInitCan(DWORDDevType,DWORDDevIndex,DWORDCANIndex,P_INIT_CONFIGpInitConfig);参数DevType设备类型号。DevIndex设备索引号,比如当只有一个设备时,索引号为0,有两个时可以为0或1。CANIndex第几路CAN。pInitConfig初始化参数结构成员功能描述pInitConfig-FilterStartpInitConfig-FilterEndFilterStart滤波范围开始idFilterEnd滤波范围结束idpInitConfig-Reserved保留pInitConfig-Filter滤波使能,1表示滤波使能,0表示不使能pInitConfig-Baud波特率设置pInitConfig-Mode模式,0表示正常模式,1表示只听模式,2自发自收模式返回值为1表示操作成功,0表示操作失败。示例#includeECan.hintnDeviceType=1;//USBCANintnDeviceInd=0;//DEVICE0intnCANInd=0;intnReserved=0;//VCI_INIT_CONFIGvic;DWORDdwRel;dwRel=OpenDevice(nDeviceType,nDeviceInd,nReserved);if(dwRel!=STATUS_OK){MessageBox(_T(打开设备失败!),_T(警告),MB_OK|MB_ICONQUESTION);沈阳广成科技有限公司沈阳市皇姑区蒲河街109号024-88760070}dwRel=InitCAN(nDeviceType,nDeviceInd,nCANInd,&vic);if(dwRel==STATUS_ERR){CloseDevice(nDeviceType,nDeviceInd);MessageBox(_T(初始化设备失败!),_T(警告),MB_OK|MB_ICONQUESTION);returnFALSE;}沈阳广成科技有限公司沈阳市皇姑区蒲河街109号024-88760070。DWORD__stdcallStartCAN(DWORDDevType,DWORDDevIndex,DWORDCANIndex);参数DevType设备类型号。DevIndex设备索引号,比如当只有一个设备时,索引号为0,有两个时可以为0或1。CANIndex第几路CAN。返回值为1表示操作成功,0表示操作失败。示例#includeECan.hintnDeviceType=1;//USBCANintnDeviceInd=0;//intnCANInd=0;intnReserved=0;//VCI_INIT_CONFIGvic;DWORDdwRel;dwRel=OpenDevice(nDeviceType,nDeviceInd,nReserved);if(dwRel!=STATUS_OK){MessageBox(_T(打开设备失败!),_T(警告),MB_OK|MB_ICONQUESTION);returnFALSE;}dwRel=InitCAN(nDeviceType,nDeviceInd,nCANInd,&vic);if(dwRel==STATUS_ERR){CloseDevice(nDeviceType,nDeviceInd);MessageBox(_T(初始化设备失败!),_T(警告),MB_OK|MB_ICONQUESTION);returnFALSE;}dwRel=StartCAN(nDeviceType,nDeviceInd,nCANInd);if(dwRel==STATUS_ERR){CloseDevice(nDeviceType,nDeviceInd);MessageBox(_T(启动设备失败!),_T(警告),MB_OK|MB_ICONQUESTION);returnFALSE;沈阳广成科技有限公司沈阳市皇姑区蒲河街109号024-88760070}沈阳广成科技有限公司沈阳市皇姑区蒲河街109号024-88760070。DWORD__stdcallResetCAN(DWORDDevType,DWORDDevIndex,DWORDCANIndex);参数Dev