亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? module1.bas

?? 南京沁恒電子有限公司USB通用設備接口芯片資料
?? BAS
?? 第 1 頁 / 共 2 頁
字號:
Attribute VB_Name = "Module1"
Public Const MAX_DATA_SIZE As Long = 56       ' 單次命令處理的最大數據長度'有效值是1到56
Public Down As USB_DOWN_PKT
Public Up  As USB_UP_PKT
Public Const CONST_CMD_LEN As Long = &H7
Public XRamaStartaddr As Byte
' ****************************************************************************************************
' 計算機接口子程序源程序
''Const MAX_DATA_SIZE As Long = 16                ' 單次命令處理的最大數據長度'有效值是1到56
Type Parastruct
           mByte(3) As Byte                ' 通用參數
          'mWord(2) As Integer              ' 通用參數'低字節在前'Little-Endian
           'mDword As Long                   ' 通用參數'低字節在前'Little-Endian
          'mAddress(1) As Byte               ' 讀寫操作的起始地址'低字節在前'Little-Endian
End Type

Type USB_DOWN_PKT                      ' 下傳的數據包結構'用于命令/寫數據
     mCommand As Byte                      ' 命令碼'見下面的定義
     mCommandNot As Byte                    ' 命令碼的反碼'用于校驗下傳數據包
     'u As Parastruct
     mByte(3) As Byte                ' 通用參數'低字節在前'Little-Endian
     mLength  As Byte                     ' 下面的緩沖區的長度'讀寫操作的字節數
     mBuffer(MAX_DATA_SIZE) As Byte     ' 數據緩沖區
End Type

Type USB_UP_PKT            ' 上傳的數據包結構'用于狀態/讀數據
    mStatus As Byte                      ' 狀態碼'見下面的定義
    mCommandNot As Byte                  ' 命令碼的反碼'用于校驗上傳數據包
    mReserved(3) As Byte
    mLength As Byte                      ' 下面的緩沖區的長度'讀操作的字節數
    mBuffer(MAX_DATA_SIZE) As Byte     ' 數據緩沖區
End Type

' 命令碼定義'按位說明
  ' 位7為命令類型:  0=實現特定功能' 1=存儲器和SFR讀寫
   '對于"實現特定功能"命令類型:
    '位6 -位0為定義的具體命令碼 ' 命令碼為00H-7FH' 其中: 00H-3FH為通用標準命令' 40H-7FH為與應用系統有關的特定命令
'目前版本定義了以下通用標準命令:
'0 H:            獲取調試固件程序的版本 ' 并取消未完成的上傳數據塊
'10 H:           獲取當前應用系統的版本和說明字符串
' 對于"存儲器和SFR讀寫"命令類型:
'位6為數據傳輸方向:      0=讀操作/上傳' 1=寫操作/下傳
'位5-位4為數據讀寫寬度:  00=以字節為單位/8位' 01=以字為單位/16位' 10=以雙字為單位/32位' 11=以位為單位/1位
'位1-位0為存儲器空間:    00=存取SFR' 01=存取內部RAM' 10=存取外部RAM' 11=存取程序ROM
'例如:        命令碼80H為讀SFR ' 命令碼83H為讀程序ROM' 命令碼C1H為寫內部RAM' 命令碼C2H為寫外部RAM
'   狀態碼定義: 00H為操作成功' 080H為命令不支持' 0FFH為未定義的錯誤

Const USB_CMD_GET_FW_INFO     As Byte = &H0
Const USB_CMD_GET_APP_INFO    As Byte = &H10
Const USB_CMD_MEM_ACCESS      As Byte = &H80
Const USB_CMD_MEM_DIR_WR      As Byte = &H40
Const USB_CMD_MEM_WIDTH       As Byte = &HC
Const USB_CMD_MEM_W_BYTE      As Byte = &H0
Const USB_CMD_MEM_W_WORD      As Byte = &H4
Const USB_CMD_MEM_W_DWORD     As Byte = &H8
Const USB_CMD_MEM_W_BIT       As Byte = &HC
Const USB_CMD_MEM_SPACE       As Byte = &H3
Const USB_CMD_MEM_S_SFR       As Byte = &H0
Const USB_CMD_MEM_S_IRAM      As Byte = &H1
Const USB_CMD_MEM_S_XRAM      As Byte = &H2
Const USB_CMD_MEM_S_ROM       As Byte = &H3
Const ERR_SUCCESS             As Byte = &H0
Const ERR_UNSUPPORT           As Byte = &H80
Const ERR_UNDEFINED           As Byte = &HFF

Const ReadSFRCmdCode As Byte = &H80
Const WriteSFRCmdCode As Byte = &HC0
Const ReadIRamCmdCode As Byte = &H81
Const WriteIRamCmdCode As Byte = &HC1
Const ReadXRamCmdCode As Byte = &H82
Const WriteXRamCmdCode As Byte = &HC2
Const ReadRomCmdCode As Byte = &H83
'Const WriteRomCmdCode As Byte = &HC3

Public CH375DBG_Index As Long            ' CH372/CH375設備序號
Public CH375DBG_Opened As Boolean        ' CH372/CH375設備被打開標志


' 應用程序啟動后'在所有操作之前'必須首先調用一次下面的CH375DBG_GetFirmwareInfo子程序
 '獲取調試固件程序的版本'并取消未完成的上傳數據塊
Public Function CH375DBG_GetFirmwareInfo(ver As Byte) As Boolean
' 輸入參數: ver 指向一個字節變量單元'用于存放獲取的版本號
Dim Leng As Long
     CH375DBG_GetFirmwareInfo = False
     If CH375OpenDevice(CH375DBG_Index) <> 0 Then     ' 打開CH375設備
        CH375DBG_Opened = True      ' 打開CH375設備
        GetFirmwareInfo = True
      Else
        CH375DBG_Opened = False   '打開CH375設備失敗
        GetFirmwareInfo = False
        Exit Function    '退出
      End If
      Down.mCommand = USB_CMD_GET_FW_INFO
      Down.mCommandNot = Not (Down.mCommand)
      For i = 0 To 3
      Down.mByte(i) = 0
      Next i
      Down.mLength = 1
      'Leng = mOFFSET(USB_DOWN_PKT, mBuffer)
      Leng = CONST_CMD_LEN
      If (CH375Writedata(CH375DBG_Index, Down, Leng)) Then
       ' 寫出命令塊
        'Leng = Len(Up)
        Leng = Len(Up)
        If (CH375ReadData(CH375DBG_Index, Up, Leng)) Then
          ' 讀取應答塊
             If ((Up.mStatus = ERR_SUCCESS) And (Up.mCommandNot = Down.mCommandNot) And (Up.mLength >= 1)) Then
              ' 操作成功,并且返回數據
                ver = Up.mBuffer(0)    ' 返回版本號 ''''modi
                CH375DBG_GetFirmwareInfo = True
             End If
        End If
      Else
     GetFirmwareInfo = False
     GetFirmwareInfo = True
    End If
End Function

' 應用程序退出前'在所有操作之后'應該調用一次下面的CH375DBG_CloseExit子程序
Public Function CH375DBG_CloseExit()     '關閉CH372/CH375設備
'   關閉CH372/CH375設備
    CH375DBG_Opened = False
    CH375CloseDevice (CH375DBG_Index)
End Function

 '獲取當前應用系統的版本和說明字符串
Public Function CH375DBG_GetAppSysInfo(ver As Byte, StringBuffer() As Byte) As Boolean
' 輸入參數: ver 指向一個字節變量單元'用于存放獲取的版本號
' StringBuffer 指向一個足夠大的字符串緩沖區'用于存放獲取的說明字符串
 '獲取當前應用系統的版本和說明字符串
'輸入參數: ver 指向一個字節變量單元,用于存放獲取的版本號
'          StringBuffer 指向一個足夠大的字符串緩沖區,用于存放獲取的說明字符串
Dim Down As USB_DOWN_PKT
Dim Up  As USB_UP_PKT
Dim Leng As Long
    CH375DBG_GetAppSysInfo = False
    Down.mCommand = USB_CMD_GET_APP_INFO
    Down.mCommandNot = Not Down.mCommand
    For i = 0 To 3
      Down.mByte(i) = 0
      Next i
    Down.mLength = 0
    'len = mOFFSET( USB_DOWN_PKT, mBuffer )
    Leng = CONST_CMD_LEN
    If (CH375Writedata(CH375DBG_Index, Down, Leng)) Then
        '寫出命令塊
        Leng = Len(Up)
        If (CH375ReadData(CH375DBG_Index, Up, Leng)) Then
            '讀取應答塊
            'If ((Up.mStatus = ERR_SUCCESS) And (Up.mCommandNot = Down.mCommandNot) And (Up.mLength >= 1)) Then
            If ((Up.mStatus = ERR_SUCCESS) And (Up.mCommandNot = Down.mCommandNot) And (Up.mLength >= 1)) Then
              '操作成功,并且返回數據
                ver = Up.mBuffer(0)    '返回版本號
                For i = 0 To (Up.mLength - 1)
                    StringBuffer(i) = Up.mBuffer(i + 1)     '返回說明字符串
                Next i
                CH375DBG_GetAppSysInfo = True
            End If
        End If
    End If
End Function

Public Function CH375DBG_ReadSFR(Addr As Byte, Data As Byte) As Boolean         '從SFR一個單元讀取數據
' 輸入參數: addr 指定SFR的地址
'           data 指向一個字節變量單元'用于存放讀出的數據
' 從SFR一個單元讀取數據
' 輸入參數: addr 指定SFR的地址
'           data 指向一個字節變量單元,用于存放讀出的數據
Dim Down As USB_DOWN_PKT
Dim Up  As USB_UP_PKT
Dim Leng As Long
     CH375DBG_ReadSFR = False
    'Down.mCommand = hextobcd(Hex(USB_CMD_MEM_ACCESS) & Hex(USB_CMD_MEM_W_BYTE) & Hex(USB_CMD_MEM_S_SFR))
    Down.mCommand = ReadSFRCmdCode
    Down.mCommandNot = Not Down.mCommand
    'Down.mDword = Addr * (256 ^ 3)  '地址低位在前,地址高位在后
    Down.mByte(0) = CByte(Addr)
    For i = 1 To 3
      Down.mByte(i) = 0
    Next i
    Down.mLength = 1
    Leng = CONST_CMD_LEN
    If (CH375Writedata(CH375DBG_Index, Down, Leng)) Then
       ' 寫出命令塊
        Leng = Len(Up)
        If (CH375ReadData(CH375DBG_Index, Up, Leng)) Then
           ' 讀取應答塊
            If (((Up.mStatus = ERR_SUCCESS) And (Up.mCommandNot = Down.mCommandNot)) And (Up.mLength >= 1)) Then
               ' 操作成功,并且返回數據
                Data = Up.mBuffer(0)  ' 返回數據   '!date是動態數組
                CH375DBG_ReadSFR = True
            End If
        End If
    End If
End Function

Public Function CH375DBG_WriteSFR(Addr As Long, Data As Byte) As Boolean          '向SFR一個單元寫入數據
' 輸入參數: addr 指定SFR的地址
'           data 指定準備寫入的數據
' 向SFR一個單元寫入數據
' 輸入參數: addr 指定SFR的地址
'           data 指定準備寫入的數據
Dim Down As USB_DOWN_PKT
Dim Up  As USB_UP_PKT
Dim Leng As Long
    CH375DBG_WriteSFR = False
    Down.mCommand = WriteSFRCmdCode
    Down.mCommandNot = Not (Down.mCommand)
    Down.mByte(0) = CByte(Addr)
    For i = 1 To 3
      Down.mByte(i) = 0
    Next i
    Down.mLength = 1
    Down.mBuffer(0) = Data
    Leng = CONST_CMD_LEN + Down.mLength
    If (CH375Writedata(CH375DBG_Index, Down, Leng)) Then
        ' 寫出命令塊
        Leng = Len(Up)
        If (CH375ReadData(CH375DBG_Index, Up, Leng)) Then
            ' 讀取應答塊
            If ((Up.mStatus = ERR_SUCCESS) And (Up.mCommandNot = Down.mCommandNot)) Then
              ' 操作成功
                CH375DBG_WriteSFR = True
            End If
        End If
    End If
End Function

Public Function CH375DBG_ReadIRAM(StartAddr As Long, Buffer() As Byte, Count As Byte) As Boolean           '從內部RAM讀取數據塊
' 輸入參數: StartAddr 指定內部RAM的起始地址
'           buffer 指向一個足夠大的數據緩沖區'用于存放讀出的數據塊
'           count 指定讀取的字節數
' 從內部RAM讀取數據塊
' 輸入參數: StartAddr 指定內部RAM的起始地址
'           buffer 指向一個足夠大的數據緩沖區,用于存放讀出的數據塊
'           count 指定讀取的字節數
Dim Down As USB_DOWN_PKT
Dim Up  As USB_UP_PKT
Dim Leng As Long
    CH375DBG_ReadIRAM = False
    If (Count > MAX_DATA_SIZE) Then
        CH375DBG_ReadIRAM = False  ' 限制單次處理的數據長度,可以與單片機程序的MAX_DATA_SIZE一起同步修改為更大或更小的值
        Exit Function
    End If
    Down.mCommand = ReadIRamCmdCode
    Down.mCommandNot = Not Down.mCommand
    'Down.mDword = StartAddr * (256 ^ 3)
    Down.mByte(0) = CByte(StartAddr)
    For i = 1 To 3
      Down.mByte(i) = 0
    Next i
    Down.mLength = Count
     Leng = CONST_CMD_LEN
    
    If (CH375Writedata(CH375DBG_Index, Down, Leng)) Then
        ' 寫出命令塊
        Leng = Len(Up)
        If (CH375ReadData(CH375DBG_Index, Up, Leng)) Then
          ' 讀取應答塊
            If ((Up.mStatus = ERR_SUCCESS) And (Up.mCommandNot = Down.mCommandNot) And (Up.mLength >= Count)) Then
              ' 操作成功,并且返回數據
                For i = 0 To (Count - 1)
                    Buffer(i) = Up.mBuffer(i)  ' 返回數據
                Next i
                CH375DBG_ReadIRAM = True
                
            End If
        End If
    End If

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
●精品国产综合乱码久久久久 | 久久亚洲春色中文字幕久久久| 欧美成人精精品一区二区频| 国产精品毛片大码女人| 石原莉奈在线亚洲三区| 99久久精品情趣| 欧美精品一区二区三区蜜桃 | 国产亚洲精品aa午夜观看| 亚洲一区在线观看网站| 国产精品一级在线| 欧美精品久久天天躁| 日韩一区在线播放| 国产精品系列在线播放| 91精品国产高清一区二区三区蜜臀| 国产精品久久久久久亚洲毛片 | 精品一区二区三区在线视频| 色欧美日韩亚洲| 中文久久乱码一区二区| 国内精品久久久久影院色| 欧美三级视频在线观看| 亚洲日本青草视频在线怡红院 | 久久国内精品自在自线400部| 欧美影院一区二区三区| 亚洲欧洲成人av每日更新| 国产91丝袜在线18| 久久午夜色播影院免费高清| 日本麻豆一区二区三区视频| 欧美三级在线视频| 亚洲综合一区二区精品导航| 99久久精品国产一区二区三区| 中文在线资源观看网站视频免费不卡| 国内精品不卡在线| 欧美一区二区三区四区视频| 日韩精品亚洲专区| 欧美精品黑人性xxxx| 亚洲一区二区三区四区在线免费观看 | 国产人久久人人人人爽| 精品一区二区三区免费毛片爱| 欧美一区二区福利视频| 日本不卡在线视频| 4438成人网| 久久丁香综合五月国产三级网站| 欧美一区午夜精品| 蜜桃精品在线观看| 久久综合一区二区| 成人av电影在线| 亚洲人成网站在线| 欧美在线观看视频一区二区 | 欧美亚洲国产一区二区三区va| 一区二区三区鲁丝不卡| 欧美亚洲精品一区| 奇米色一区二区| 亚洲成人免费视| 欧美性视频一区二区三区| 性做久久久久久| 欧美精品一区二区三区视频| 国产99久久久国产精品潘金网站| 国产精品国产成人国产三级 | 美女视频网站黄色亚洲| 精品国产凹凸成av人导航| 懂色av中文一区二区三区| 亚洲欧美另类图片小说| 69精品人人人人| 国产成人精品综合在线观看| 日韩码欧中文字| 欧美日韩大陆在线| 国产伦精品一区二区三区免费| 国产精品国产a| 51精品视频一区二区三区| 国产凹凸在线观看一区二区| 一区二区三区免费看视频| 日韩三级视频在线观看| 不卡的av电影在线观看| 舔着乳尖日韩一区| 中文字幕不卡的av| 在线成人免费视频| eeuss鲁片一区二区三区| 无吗不卡中文字幕| 国产精品久久久爽爽爽麻豆色哟哟| 欧美三级电影精品| 成人激情黄色小说| 免费高清不卡av| 一区二区三区四区中文字幕| 久久影院午夜片一区| 欧美日韩视频专区在线播放| 国产河南妇女毛片精品久久久| 亚洲一二三四在线观看| 久久久另类综合| 欧美精品一二三四| 99国产精品久久久久久久久久 | 亚洲电影在线免费观看| 欧美激情一区二区三区蜜桃视频| 欧美人牲a欧美精品| 97久久超碰国产精品电影| 激情综合色播激情啊| 亚洲高清在线视频| 亚洲精品日韩一| 中文字幕 久热精品 视频在线 | 美女视频黄久久| 偷窥国产亚洲免费视频| 亚洲精品高清在线观看| 国产精品美女久久久久aⅴ| 精品日韩99亚洲| 91精品欧美福利在线观看| 91国产免费看| 一本色道**综合亚洲精品蜜桃冫 | 在线观看视频欧美| 成人黄色网址在线观看| 国产精品一区二区果冻传媒| 捆绑调教美女网站视频一区| 日韩精品三区四区| 日韩国产欧美三级| 青青草国产精品97视觉盛宴| 天堂午夜影视日韩欧美一区二区| 亚洲一区二区三区免费视频| 亚洲一区二区三区激情| 亚洲精品一二三| 亚洲最大成人网4388xx| 亚洲精品欧美综合四区| 亚洲一区国产视频| 亚洲成av人影院| 日本中文字幕一区二区视频| 青青草成人在线观看| 精品一区二区三区在线播放视频| 精品一区二区三区在线视频| 国产一区二区三区四区五区入口| 国产米奇在线777精品观看| 欧美日韩久久久一区| 欧美视频第二页| 51久久夜色精品国产麻豆| 日韩午夜精品视频| 精品国产一区二区亚洲人成毛片 | 91麻豆精品国产无毒不卡在线观看 | 亚洲综合图片区| 日韩影视精彩在线| 精品一区二区三区视频在线观看 | 欧美亚洲高清一区| 在线播放一区二区三区| 欧美mv日韩mv国产网站| 国产免费观看久久| 一区二区三区在线免费播放| 日韩精品乱码免费| 国产激情精品久久久第一区二区| caoporen国产精品视频| 欧美午夜影院一区| 久久婷婷国产综合精品青草| 国产精品区一区二区三| 亚洲电影欧美电影有声小说| 久久99最新地址| 99国产精品久久久久| 欧美一级淫片007| 中文字幕欧美日本乱码一线二线| 亚洲欧美韩国综合色| 免费看日韩精品| 99麻豆久久久国产精品免费优播| 欧美性大战久久| 久久久不卡网国产精品二区 | 久久爱www久久做| 97se亚洲国产综合自在线不卡| 欧美色图一区二区三区| 久久免费美女视频| 尤物视频一区二区| 国产剧情一区二区| 欧美性受xxxx| 国产精品你懂的在线| 欧美aⅴ一区二区三区视频| 99视频国产精品| 欧美精品一区二区三区久久久| 亚洲免费在线视频| 国产成人综合精品三级| 欧美久久一二区| 一区二区三区在线视频免费观看| 狠狠色伊人亚洲综合成人| 欧美性高清videossexo| 国产精品久久久久久久久久久免费看 | 亚洲欧美在线高清| 韩国v欧美v亚洲v日本v| 欧美美女激情18p| 综合av第一页| 国产成a人亚洲| 日韩女优毛片在线| 亚洲h动漫在线| 色哟哟一区二区| ...av二区三区久久精品| 色综合久久中文字幕| 中文字幕第一区二区| 国产一区二区三区在线观看免费| 欧美日韩激情在线| 亚洲黄色性网站| 99在线热播精品免费| 国产视频在线观看一区二区三区 | 日韩美女主播在线视频一区二区三区| 一区二区三区日韩欧美精品| 91在线视频播放| 日本一区二区综合亚洲| 国产黄色精品网站| 国产亚洲制服色| 国产在线日韩欧美| 日韩欧美国产系列| 蜜臀精品久久久久久蜜臀|