define.bas
来自「I2C通讯示意程序通过I2C转换485然后用485通讯」· BAS 代码 · 共 274 行
BAS
274 行
Attribute VB_Name = "DEFINE"
Global Const BUS1 = "80"
Global Const BUS2 = "81"
Public WATCHDOGDO
Public Enum com_modle_func_code
'write
SENDBYTE = &H1
WRITE_REG_1BYTE = &H2
WRITE_REG_NBYTE = &H3
'read
READ_1BYTE = &H10
READ_BLOCK = &H11
READ_Tempreture = &H12
READ_VENDOR_CODE = &H13
WATCHDOG = &H14
End Enum
Public Enum COMTYPE
I2C_COM = 1
OTHER = 2
End Enum
Public Enum AppleFuncode
SET_FAN_STOP = 1
DISABLE_FAN_STOP = 2
READ_VENDOR = 3
SET_FAN_SPEED_5000 = 4
SET_FAN_SPEED_7000 = 5
SET_FAN_SPEED_10000 = 6
SET_FAN_SPEED_15000 = 7
READ_FAN_SPEED = 8
READ_T = 9
SEND_BYTE = 10
READ_BYTE = 11
WATCH_DOG = 12
disable_WATCH_DOG = 13
End Enum
Type COMSTRING
CardAds As String
RW As String
FunctCode As String
ICTYPE As String
SlaveAds As String
RegAds As String
DataNo As String
value1 As String
Value2 As String
Value3 As String
Value4 As String
CRC01 As String
CRC02 As String
End Type
Public Function MakeSendString(fan As Integer, funct As Integer) As String
Dim sendstring As COMSTRING
Select Case fan
Case 1, 2, 3, 4
sendstring.CardAds = BUS1
Case 5, 6, 7
sendstring.CardAds = BUS2
End Select
Select Case funct
Case SEND_BYTE
sendstring.RW = "02"
sendstring.FunctCode = FuncMake(funct)
sendstring.ICTYPE = d_hex(I2C_COM, 2)
sendstring.SlaveAds = SlaveAdsMake(fan)
sendstring.RegAds = "07"
sendstring.DataNo = "01"
sendstring.value1 = "00"
sendstring.Value2 = "00"
sendstring.Value3 = "00"
sendstring.Value4 = "00"
Case READ_BYTE
sendstring.RW = "01"
sendstring.FunctCode = FuncMake(funct)
sendstring.ICTYPE = d_hex(I2C_COM, 2)
sendstring.SlaveAds = SlaveAdsMake(fan)
sendstring.RegAds = "07"
sendstring.DataNo = "01"
sendstring.value1 = "00"
sendstring.Value2 = "00"
sendstring.Value3 = "00"
sendstring.Value4 = "00"
Case SET_FAN_STOP
sendstring.RW = "02"
sendstring.FunctCode = FuncMake(funct)
sendstring.ICTYPE = d_hex(I2C_COM, 2)
sendstring.SlaveAds = SlaveAdsMake(fan)
sendstring.RegAds = "07"
sendstring.DataNo = "01"
sendstring.value1 = "C0"
sendstring.Value2 = "00"
sendstring.Value3 = "00"
sendstring.Value4 = "00"
Case DISABLE_FAN_STOP
sendstring.RW = "02"
sendstring.FunctCode = FuncMake(funct)
sendstring.ICTYPE = d_hex(I2C_COM, 2)
sendstring.SlaveAds = SlaveAdsMake(fan)
sendstring.RegAds = "07"
sendstring.DataNo = "01"
sendstring.value1 = "00"
sendstring.Value2 = "00"
sendstring.Value3 = "00"
sendstring.Value4 = "00"
Case READ_VENDOR
sendstring.RW = "01"
sendstring.FunctCode = FuncMake(funct)
sendstring.ICTYPE = d_hex(I2C_COM, 2)
sendstring.SlaveAds = "41"
sendstring.RegAds = "00"
sendstring.DataNo = "01"
sendstring.value1 = "00"
sendstring.Value2 = "00"
sendstring.Value3 = "00"
sendstring.Value4 = "00"
Case SET_FAN_SPEED_5000
sendstring.RW = "02"
sendstring.FunctCode = FuncMake(funct)
sendstring.ICTYPE = d_hex(I2C_COM, 2)
sendstring.SlaveAds = SlaveAdsMake(fan)
sendstring.RegAds = "AA"
sendstring.DataNo = "04"
sendstring.value1 = "D7"
sendstring.Value2 = "03"
sendstring.Value3 = "D1"
sendstring.Value4 = "05"
Case SET_FAN_SPEED_7000
sendstring.RW = "02"
sendstring.FunctCode = FuncMake(funct)
sendstring.ICTYPE = d_hex(I2C_COM, 2)
sendstring.SlaveAds = SlaveAdsMake(fan)
sendstring.RegAds = "AA"
sendstring.DataNo = "04"
sendstring.value1 = "BE"
sendstring.Value2 = "02"
sendstring.Value3 = "77"
sendstring.Value4 = "04"
Case SET_FAN_SPEED_10000
sendstring.RW = "02"
sendstring.FunctCode = FuncMake(funct)
sendstring.ICTYPE = d_hex(I2C_COM, 2)
sendstring.SlaveAds = SlaveAdsMake(fan)
sendstring.RegAds = "AA"
sendstring.DataNo = "04"
sendstring.value1 = "EB"
sendstring.Value2 = "01"
sendstring.Value3 = "0C"
sendstring.Value4 = "03"
Case SET_FAN_SPEED_15000
sendstring.RW = "02"
sendstring.FunctCode = FuncMake(funct)
sendstring.ICTYPE = d_hex(I2C_COM, 2)
sendstring.SlaveAds = SlaveAdsMake(fan)
sendstring.RegAds = "AA"
sendstring.DataNo = "04"
sendstring.value1 = "47"
sendstring.Value2 = "01"
sendstring.Value3 = "22"
sendstring.Value4 = "02"
Case READ_FAN_SPEED
sendstring.RW = "01"
sendstring.FunctCode = FuncMake(funct)
sendstring.ICTYPE = d_hex(I2C_COM, 2)
sendstring.SlaveAds = SlaveAdsMake(fan)
sendstring.RegAds = "C9"
sendstring.DataNo = "04"
sendstring.value1 = "00"
sendstring.Value2 = "00"
sendstring.Value3 = "00"
sendstring.Value4 = "00"
Case READ_T
sendstring.RW = "01"
sendstring.FunctCode = FuncMake(funct)
sendstring.ICTYPE = d_hex(I2C_COM, 2)
sendstring.SlaveAds = SlaveAdsMake(fan)
sendstring.RegAds = "40"
sendstring.DataNo = "01"
sendstring.value1 = "00"
sendstring.Value2 = "00"
sendstring.Value3 = "00"
sendstring.Value4 = "00"
Case WATCH_DOG
sendstring.RW = "02"
sendstring.FunctCode = FuncMake(funct)
sendstring.ICTYPE = d_hex(I2C_COM, 2)
sendstring.SlaveAds = "00"
sendstring.RegAds = "00"
sendstring.DataNo = "00"
sendstring.value1 = "01"
sendstring.Value2 = "00"
sendstring.Value3 = "00"
sendstring.Value4 = "00"
WATCHDOGDO = 1
Case disable_WATCH_DOG
sendstring.RW = "02"
sendstring.FunctCode = FuncMake(funct)
sendstring.ICTYPE = d_hex(I2C_COM, 2)
sendstring.SlaveAds = "00"
sendstring.RegAds = "00"
sendstring.DataNo = "00"
sendstring.value1 = "00"
sendstring.Value2 = "00"
sendstring.Value3 = "00"
sendstring.Value4 = "00"
WATCHDOGDO = 1
End Select
MakeSendString = sendstring.CardAds + sendstring.RW + sendstring.FunctCode + _
sendstring.ICTYPE + sendstring.SlaveAds + sendstring.RegAds + sendstring.DataNo + _
sendstring.value1 + sendstring.Value2 + sendstring.Value3 + sendstring.Value4
End Function
Public Function SlaveAdsMake(fun As Integer) As String
Select Case fun
Case 1
SlaveAdsMake = "53"
Case 2
SlaveAdsMake = "52"
Case 3
SlaveAdsMake = "51"
Case 4
SlaveAdsMake = "50"
Case 5
SlaveAdsMake = "53"
Case 6
SlaveAdsMake = "52"
Case 7
SlaveAdsMake = "51"
End Select
End Function
Public Function FuncMake(func As Integer) As String
Dim str As Long
Select Case func
Case SET_FAN_STOP
str = WRITE_REG_1BYTE
Case DISABLE_FAN_STOP
str = WRITE_REG_1BYTE
Case READ_VENDOR
str = READ_VENDOR_CODE
Case SET_FAN_SPEED_5000
str = WRITE_REG_NBYTE
Case SET_FAN_SPEED_7000
str = WRITE_REG_NBYTE
Case SET_FAN_SPEED_10000
str = WRITE_REG_NBYTE
Case SET_FAN_SPEED_15000
str = WRITE_REG_NBYTE
Case READ_FAN_SPEED
str = READ_BLOCK
Case READ_T
str = READ_Tempreture
Case SEND_BYTE
str = SENDBYTE
Case READ_BYTE
str = READ_1BYTE
Case WATCH_DOG
str = WATCHDOG
Case disable_WATCH_DOG
str = WATCHDOG
End Select
FuncMake = d_hex(str, 4)
End Function
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?