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

📄 define.bas

📁 I2C通讯示意程序通过I2C转换485然后用485通讯
💻 BAS
字号:
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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -