⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.frm

📁 CAN测试程序。华控CAN50模块(can转usb)的测试程序(VC
💻 FRM
字号:
VERSION 5.00
Begin VB.Form Form1 
   Caption         =   "HKCAN-Tester"
   ClientHeight    =   4095
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   5565
   LinkTopic       =   "Form1"
   ScaleHeight     =   4095
   ScaleWidth      =   5565
   StartUpPosition =   3  'Windows Default
   Begin VB.CommandButton GetInput 
      Caption         =   "接收数据"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   9
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Left            =   3120
      TabIndex        =   5
      Top             =   3000
      Width           =   1455
   End
   Begin VB.TextBox InputData 
      Height          =   375
      Left            =   840
      TabIndex        =   4
      Top             =   3000
      Width           =   1335
   End
   Begin VB.CommandButton SetOutput 
      Caption         =   "发送数据"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   9
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Left            =   3120
      TabIndex        =   3
      Top             =   2400
      Width           =   1455
   End
   Begin VB.TextBox Output 
      Height          =   375
      Left            =   840
      TabIndex        =   2
      Top             =   2400
      Width           =   1335
   End
   Begin VB.CommandButton CloseCard 
      Caption         =   "关闭CAN卡"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   9
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Left            =   840
      TabIndex        =   1
      Top             =   1440
      Width           =   1455
   End
   Begin VB.CommandButton OpenCard 
      Caption         =   "初始化CAN卡"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   9
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Left            =   840
      TabIndex        =   0
      Top             =   720
      Width           =   1455
   End
   Begin VB.Label HK 
      Caption         =   "HK-CAN10S驱动调用例程"
      Height          =   255
      Left            =   1680
      TabIndex        =   6
      Top             =   240
      Width           =   2295
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False


Private Declare Function HKCanOpen Lib "HKCANDLL.DLL" (ByRef mDevHandle As PHKCANHANDLE, ByRef InDriverName As Any, ByVal DrType As Long, ByVal nDev As Long) As Boolean
Private Declare Function HKCanClose Lib "HKCANDLL.DLL" (ByRef mDevHandle As PHKCANHANDLE) As Boolean
Private Declare Function HKCanInitState Lib "HKCANDLL.DLL" (ByRef mDevHandle As PHKCANHANDLE, ByVal Port As Long, ByVal CAN_bps As Long, ByVal CAN_StationAddress As Byte, ByVal CAN_Mask As Byte, ByVal mRxEvent As Long) As Boolean
Private Declare Function HKCanSendFrame Lib "HKCANDLL.DLL" (ByRef mDevHandle As PHKCANHANDLE, ByRef pSendFrame As PHKCANFRAME) As Long
Private Declare Function HKCanReadFrame Lib "HKCANDLL.DLL" (ByRef mDevHandle As PHKCANHANDLE, ByVal Port As Long, ByRef pReadFrame As PHKCANFRAME) As Long
           
           
Dim g_mDevHandle As PHKCANHANDLE
Dim g_SendFrame As PHKCANFRAME
Dim g_RecFrame As PHKCANFRAME


Private Type PHKCANHANDLE
    mHandle As Long
    mGuid As Long
    mClass As Integer
    mDev As Integer
    mType As Integer
    mState As Integer
End Type

Private Type PHKCANFRAME
    Port As Byte
    mFrame(0 To 9) As Byte
End Type




Private Sub Form_Load()

    'Dim Buffer(0) As Byte
    
    'Buffer(0) = 253
    
    'Dim b As Long
    
    'b = SetSlaveOutputData(7, Buffer, 0, 1)

End Sub

Private Sub OpenCard_Click()
  
    Dim Status As Boolean
    Dim InDriverName(0 To 128) As Byte
    Dim DrType As Long
    Dim nDev As Long
    Dim StrLen As Long
    
    Dim Port As Long
    Dim CAN_bps As Long
    Dim CAN_StationAddress As Byte
    Dim CAN_Mask As Byte
    Dim mRxEvent As Long

    
 
    g_mDevHandle.mClass = 0 'CAN10S类型设备
    g_mDevHandle.mDev = 0 '0号设备
    g_mDevHandle.mType = 0 '选用sys类型驱动
    
    '设备类型名“HKCAN10”
    InDriverName(0) = 72  'H
    InDriverName(1) = 75  'K
    InDriverName(2) = 67  'C
    InDriverName(3) = 65  'A
    InDriverName(4) = 78  'N
    InDriverName(5) = 49  '1
    InDriverName(6) = 48  '0
    InDriverName(7) = 0   '结束符
    
    DrType = 0
    nDev = 0
    
    
    
    Status = HKCanOpen(g_mDevHandle, InDriverName(0), DrType, nDev)
    
    If Status Then
        Port = 0
        CAN_bps = 49571 '500K
        CAN_StationAddress = 0
        CAN_Mask = 255
        mRxEvent = 0
        Status = HKCanInitState(g_mDevHandle, Port, CAN_bps, CAN_StationAddress, CAN_Mask, mRxEvent)
        If Status Then
        Else
            MsgBox ("       CAN Port0 卡初始化失败!!       ")
        End If
        
        Port = 1
        Status = HKCanInitState(g_mDevHandle, Port, CAN_bps, CAN_StationAddress, CAN_Mask, mRxEvent)
        If Status Then
        Else
            MsgBox ("       CAN Port1 卡初始化失败!!       ")
        End If
          
    Else
        MsgBox ("       CAN 卡打开失败!!       ")
    End If
End Sub





Private Sub SetOutput_Click()
    Dim Status As Long
    Dim sTemp As String
    Dim strLeng As Long
    Dim str_Count As Long
    
    '根据协议来定
    g_SendFrame.mFrame(0) = 10
    g_SendFrame.mFrame(1) = 136
    
    str_Count = 1
    For strLeng = 2 To 9
        sTemp = Mid(Output.Text, str_Count, 1)
        g_SendFrame.mFrame(str_Count + 1) = Val(sTemp)
        str_Count = str_Count + 1
    Next
    
    '0号端口发送数据
    g_SendFrame.Port = 0
    
    
    '写输出
    If g_mDevHandle.mHandle <> 0 Then
        Status = HKCanSendFrame(g_mDevHandle, g_SendFrame)
        If Status <> 0 Then
           MsgBox ("    数据发送失败!!    ")
        End If
        
    End If


End Sub

Private Sub GetInput_Click()
    Dim Status As Long
    Dim sTemp As String
    Dim strLeng As Long
    Dim str_Count As Long
    

'If g_mDevHandle.mHandle <> 0 Then
    '1号端口接收数据
    Status = HKCanReadFrame(g_mDevHandle, 1, g_RecFrame)
    If Status < 0 Then
        MsgBox ("    读取操作失败!!    ")
    End If
'End If


sTemp = ""
str_Count = 2
For strLeng = 2 To 9
    sTemp = sTemp + Str(g_RecFrame.mFrame(str_Count))
    str_Count = str_Count + 1
Next

InputData.Text = sTemp


End Sub

Private Sub CloseCard_Click()
Dim Status As Boolean
   If g_mDevHandle.mHandle <> Null Then
    Status = HKCanClose(g_mDevHandle)
   End If

End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -