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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? module1.bas

?? CH372調(diào)試程序,軟件代碼及編譯好的執(zhí)行程序
?? BAS
?? 第 1 頁 / 共 2 頁
字號:
Attribute VB_Name = "Module1"
Public Const MAX_DATA_SIZE As Long = 56       ' 單次命令處理的最大數(shù)據(jù)長度'有效值是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                ' 單次命令處理的最大數(shù)據(jù)長度'有效值是1到56
Type Parastruct
           mByte(3) As Byte                ' 通用參數(shù)
          'mWord(2) As Integer              ' 通用參數(shù)'低字節(jié)在前'Little-Endian
           'mDword As Long                   ' 通用參數(shù)'低字節(jié)在前'Little-Endian
          'mAddress(1) As Byte               ' 讀寫操作的起始地址'低字節(jié)在前'Little-Endian
End Type

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

Type USB_UP_PKT            ' 上傳的數(shù)據(jù)包結(jié)構(gòu)'用于狀態(tài)/讀數(shù)據(jù)
    mStatus As Byte                      ' 狀態(tài)碼'見下面的定義
    mCommandNot As Byte                  ' 命令碼的反碼'用于校驗上傳數(shù)據(jù)包
    mReserved(3) As Byte
    mLength As Byte                      ' 下面的緩沖區(qū)的長度'讀操作的字節(jié)數(shù)
    mBuffer(MAX_DATA_SIZE) As Byte     ' 數(shù)據(jù)緩沖區(qū)
End Type

' 命令碼定義'按位說明
  ' 位7為命令類型:  0=實現(xiàn)特定功能' 1=存儲器和SFR讀寫
   '對于"實現(xiàn)特定功能"命令類型:
    '位6 -位0為定義的具體命令碼 ' 命令碼為00H-7FH' 其中: 00H-3FH為通用標準命令' 40H-7FH為與應用系統(tǒng)有關(guān)的特定命令
'目前版本定義了以下通用標準命令:
'0 H:            獲取調(diào)試固件程序的版本 ' 并取消未完成的上傳數(shù)據(jù)塊
'10 H:           獲取當前應用系統(tǒng)的版本和說明字符串
' 對于"存儲器和SFR讀寫"命令類型:
'位6為數(shù)據(jù)傳輸方向:      0=讀操作/上傳' 1=寫操作/下傳
'位5-位4為數(shù)據(jù)讀寫寬度:  00=以字節(jié)為單位/8位' 01=以字為單位/16位' 10=以雙字為單位/32位' 11=以位為單位/1位
'位1-位0為存儲器空間:    00=存取SFR' 01=存取內(nèi)部RAM' 10=存取外部RAM' 11=存取程序ROM
'例如:        命令碼80H為讀SFR ' 命令碼83H為讀程序ROM' 命令碼C1H為寫內(nèi)部RAM' 命令碼C2H為寫外部RAM
'   狀態(tài)碼定義: 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設(shè)備序號
Public CH375DBG_Opened As Boolean        ' CH372/CH375設(shè)備被打開標志


' 應用程序啟動后'在所有操作之前'必須首先調(diào)用一次下面的CH375DBG_GetFirmwareInfo子程序
 '獲取調(diào)試固件程序的版本'并取消未完成的上傳數(shù)據(jù)塊
Public Function CH375DBG_GetFirmwareInfo(ver As Byte) As Boolean
' 輸入?yún)?shù): ver 指向一個字節(jié)變量單元'用于存放獲取的版本號
Dim Leng As Long
     CH375DBG_GetFirmwareInfo = False
     If CH375OpenDevice(CH375DBG_Index) <> 0 Then     ' 打開CH375設(shè)備
        CH375DBG_Opened = True      ' 打開CH375設(shè)備
        GetFirmwareInfo = True
      Else
        CH375DBG_Opened = False   '打開CH375設(shè)備失敗
        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
              ' 操作成功,并且返回數(shù)據(jù)
                ver = Up.mBuffer(0)    ' 返回版本號 ''''modi
                CH375DBG_GetFirmwareInfo = True
             End If
        End If
      Else
     GetFirmwareInfo = False
     GetFirmwareInfo = True
    End If
End Function

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

 '獲取當前應用系統(tǒng)的版本和說明字符串
Public Function CH375DBG_GetAppSysInfo(ver As Byte, StringBuffer() As Byte) As Boolean
' 輸入?yún)?shù): ver 指向一個字節(jié)變量單元'用于存放獲取的版本號
' StringBuffer 指向一個足夠大的字符串緩沖區(qū)'用于存放獲取的說明字符串
 '獲取當前應用系統(tǒng)的版本和說明字符串
'輸入?yún)?shù): ver 指向一個字節(jié)變量單元,用于存放獲取的版本號
'          StringBuffer 指向一個足夠大的字符串緩沖區(qū),用于存放獲取的說明字符串
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
              '操作成功,并且返回數(shù)據(jù)
                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一個單元讀取數(shù)據(jù)
' 輸入?yún)?shù): addr 指定SFR的地址
'           data 指向一個字節(jié)變量單元'用于存放讀出的數(shù)據(jù)
' 從SFR一個單元讀取數(shù)據(jù)
' 輸入?yún)?shù): addr 指定SFR的地址
'           data 指向一個字節(jié)變量單元,用于存放讀出的數(shù)據(jù)
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
               ' 操作成功,并且返回數(shù)據(jù)
                Data = Up.mBuffer(0)  ' 返回數(shù)據(jù)   '!date是動態(tài)數(shù)組
                CH375DBG_ReadSFR = True
            End If
        End If
    End If
End Function

Public Function CH375DBG_WriteSFR(Addr As Long, Data As Byte) As Boolean          '向SFR一個單元寫入數(shù)據(jù)
' 輸入?yún)?shù): addr 指定SFR的地址
'           data 指定準備寫入的數(shù)據(jù)
' 向SFR一個單元寫入數(shù)據(jù)
' 輸入?yún)?shù): addr 指定SFR的地址
'           data 指定準備寫入的數(shù)據(jù)
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           '從內(nèi)部RAM讀取數(shù)據(jù)塊
' 輸入?yún)?shù): StartAddr 指定內(nèi)部RAM的起始地址
'           buffer 指向一個足夠大的數(shù)據(jù)緩沖區(qū)'用于存放讀出的數(shù)據(jù)塊
'           count 指定讀取的字節(jié)數(shù)
' 從內(nèi)部RAM讀取數(shù)據(jù)塊
' 輸入?yún)?shù): StartAddr 指定內(nèi)部RAM的起始地址
'           buffer 指向一個足夠大的數(shù)據(jù)緩沖區(qū),用于存放讀出的數(shù)據(jù)塊
'           count 指定讀取的字節(jié)數(shù)
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  ' 限制單次處理的數(shù)據(jù)長度,可以與單片機程序的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
              ' 操作成功,并且返回數(shù)據(jù)
                For i = 0 To (Count - 1)
                    Buffer(i) = Up.mBuffer(i)  ' 返回數(shù)據(jù)
                Next i
                CH375DBG_ReadIRAM = True
                
            End If
        End If
    End If

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩视频在线观看一区二区| 亚洲成a人v欧美综合天堂下载| 国产精品久久网站| 亚洲国产精品综合小说图片区| 狠狠网亚洲精品| 国产欧美一区二区三区鸳鸯浴| 亚洲人成网站色在线观看| 捆绑调教一区二区三区| 91麻豆国产福利在线观看| 久久先锋影音av| 午夜视频在线观看一区| 91蝌蚪porny成人天涯| 亚洲国产高清不卡| 精品在线一区二区三区| 欧美挠脚心视频网站| 亚洲色图欧洲色图| 高清在线不卡av| 精品国产髙清在线看国产毛片 | 波多野结衣一区二区三区 | 日本乱人伦aⅴ精品| 久久婷婷一区二区三区| 青青草视频一区| 欧美亚一区二区| 亚洲精品美腿丝袜| 91在线观看免费视频| 国产精品无遮挡| 国产乱国产乱300精品| 欧美大尺度电影在线| 麻豆免费看一区二区三区| 6080日韩午夜伦伦午夜伦| 五月天亚洲婷婷| 欧美三片在线视频观看| 国产精品影视在线| 久久蜜桃一区二区| 国产成都精品91一区二区三| 国产亚洲福利社区一区| 国产精品羞羞答答xxdd| 国产精品人人做人人爽人人添| 国产成人鲁色资源国产91色综 | 亚洲天堂网中文字| 91丝袜美腿高跟国产极品老师| 亚洲丝袜另类动漫二区| 色综合久久中文综合久久97| 一区二区三区国产| 欧美系列日韩一区| 蜜臀精品一区二区三区在线观看| 日韩欧美成人午夜| 国产成人在线网站| 中文字幕视频一区| 欧美四级电影网| 国内精品国产成人| 亚洲国产精品激情在线观看| 91一区一区三区| 午夜久久久影院| 久久亚洲二区三区| 波多野结衣在线aⅴ中文字幕不卡| 日韩伦理av电影| 91精品国产aⅴ一区二区| 国产在线一区二区| 亚洲精品国产精品乱码不99 | 成人网在线播放| 一区二区三区四区不卡视频| 91精品国产综合久久精品性色| 国内一区二区视频| 亚洲一区国产视频| 久久久久久毛片| 欧美性猛交一区二区三区精品| 舔着乳尖日韩一区| 中文字幕乱码一区二区免费| 精品婷婷伊人一区三区三| 久久99精品国产麻豆婷婷洗澡| 中文字幕亚洲精品在线观看| 91精品久久久久久久91蜜桃| 99久久亚洲一区二区三区青草| 午夜视频一区二区| 最新不卡av在线| 日韩欧美一区二区久久婷婷| 99久久综合精品| 精品夜夜嗨av一区二区三区| 伊人色综合久久天天人手人婷| 欧美白人最猛性xxxxx69交| eeuss国产一区二区三区| 久久激情五月婷婷| 亚洲国产日韩a在线播放性色| 久久蜜臀精品av| 日韩三级精品电影久久久 | 一区二区三区欧美在线观看| 26uuu国产电影一区二区| 欧美二区三区的天堂| 色综合咪咪久久| 成人免费不卡视频| 国产自产视频一区二区三区| 日韩精品欧美精品| 午夜婷婷国产麻豆精品| 日韩一区在线看| 国产欧美精品一区二区色综合朱莉| 欧美一区二区网站| 欧美伊人久久久久久午夜久久久久| 国产成人午夜精品5599 | 久久久久久久综合日本| 在线播放中文一区| 欧美日韩中文一区| 欧美三区在线观看| 欧美日韩一区久久| 欧美在线免费播放| 欧美视频在线播放| 欧美日韩免费高清一区色橹橹 | 一区二区不卡在线视频 午夜欧美不卡在| 国产亚洲精品资源在线26u| 精品sm捆绑视频| 日韩精品一区二区三区老鸭窝| 欧美情侣在线播放| 欧美日韩情趣电影| 欧美一区二区三区思思人| 欧美日本免费一区二区三区| 欧美日韩一区不卡| 欧美乱妇15p| 欧美日韩大陆一区二区| 欧美日韩国产首页在线观看| 欧美视频中文一区二区三区在线观看 | 91丨九色丨尤物| 日本韩国一区二区三区| 欧美最新大片在线看| 欧美色综合影院| 欧美日本韩国一区| 精品日韩99亚洲| 久久精品免视看| 亚洲视频你懂的| 亚洲午夜三级在线| 免费美女久久99| 国产一区二区三区免费在线观看| 国产精品一区二区91| 99视频精品免费视频| 欧美视频在线播放| 久久色成人在线| 亚洲欧洲精品一区二区三区不卡 | 全国精品久久少妇| 国产一区二区免费在线| 成人福利视频在线看| 欧美性受xxxx| 日韩精品一区二区在线观看| 国产日产亚洲精品系列| 一区二区三区中文在线| 免费不卡在线观看| 99视频国产精品| 91精品欧美福利在线观看| 久久久噜噜噜久久人人看| 综合av第一页| 看片的网站亚洲| av中文字幕不卡| 欧美一级夜夜爽| 亚洲免费三区一区二区| 美女视频黄久久| 一本色道综合亚洲| 日韩美女一区二区三区四区| 自拍偷自拍亚洲精品播放| 另类人妖一区二区av| 99国产精品久久| 26uuu亚洲| 日日摸夜夜添夜夜添国产精品| 成人免费不卡视频| 精品久久久久久综合日本欧美| 综合自拍亚洲综合图不卡区| 久久精品国产一区二区| 91麻豆.com| 国产精品欧美综合在线| 美女一区二区三区| 色先锋aa成人| 国产精品午夜免费| 国产精品一区二区久久精品爱涩 | 久久综合九色综合欧美98| 亚洲黄色小视频| 豆国产96在线|亚洲| 欧美mv和日韩mv国产网站| 亚洲一二三级电影| 一本大道久久a久久精品综合| 久久精品一区蜜桃臀影院| 捆绑调教一区二区三区| 欧美日本视频在线| 亚洲一二三级电影| 色婷婷激情综合| 亚洲欧美一区二区视频| 成人免费视频视频| 国产精品午夜久久| 丰满亚洲少妇av| 国产日产欧美一区二区视频| 久久成人免费电影| 日韩精品一区在线观看| 免费欧美高清视频| 日韩一区二区三区电影| 日韩精品一级二级| 91精品欧美福利在线观看| 亚洲成人一区二区| 欧美日韩国产一区| 亚洲大片在线观看| 欧美日韩成人高清| 天堂va蜜桃一区二区三区| 9191国产精品| 久久99久国产精品黄毛片色诱| 91精品国产综合久久久蜜臀粉嫩|