这里m_Connect、gCounter、Data()应该是外部变量
定义未知,下面猜测
Private Sub Connect(my_CanNum As Byte)
If m_Connect = 1 Then 'm_Connect是一个表示状态的变量,如果它是1则表示现在设备处於占用的状态,不可以进行连接,要关闭设备,这是设备是空闲状态,可以连接,将m_Connect设为0表示可以连接
m_Connect = 0
VCI_CloseDevice 1, 0 '关闭设备
Exit Sub
End If
InitConfig.AccCode = &HAA000000 '这里是一些连接参数的设置
InitConfig.AccMask = &HFFFFFF
InitConfig.Filter = 1
InitConfig.Mode = 0
InitConfig.Timing0 = &H0
InitConfig.Timing1 = &H14
'尝试打开设备,返回1则为成功,非1返回错误,并停止程序
If VCI_OpenDevice(1, 0, my_CanNum) <> 1 Then
MsgBox ("打开设备错误")
Test = False
Exit Sub
Else
'连接设备初始化,1为成功,这时设备已经被占用,将m_Connect设为1,非1返回失败,停止程序
If VCI_InitCAN(1, 0, my_CanNum, InitConfig) = 1 Then
m_Connect = 1
Else
MsgBox ("初始化CAN错误")
Test = False
Exit Sub
End If
End If
'建立连接,返回1为成功,否则失败,停止程序
If VCI_StartCAN(1, 0, my_CanNum) <> 1 Then
MsgBox ("启动CAN错误")
Test = False
Exit Sub
Else
' List1.AddItem "启动CAN成功", List1.ListCount
End If
End Sub
发送1() 和 发送2() 每一个都进行了两次数据的发送尝试
函数后没加括号时默认是传送地址,加上括号才认为传值。
'如果是 <函数名 + 空格 + 传入参数> 侧默认传入参数是使用ByRef,即传递地址
'如果是 <函数名 + 空格 +( 传入参数)> 多了括号侧默认传入参数是使用ByVal,即传递数值