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

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

?? module1.bas

?? ch372驅(qū)動(dòng)源代碼
?? BAS
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
Attribute VB_Name = "Module1"
Public Const MAX_DATA_SIZE As Long = 56       ' 單次命令處理的最大數(shù)據(jù)長(zhǎng)度'有效值是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
' ****************************************************************************************************
' 計(jì)算機(jī)接口子程序源程序
''Const MAX_DATA_SIZE As Long = 16                ' 單次命令處理的最大數(shù)據(jù)長(zhǎng)度'有效值是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                      ' 命令碼'見(jiàn)下面的定義
     mCommandNot As Byte                    ' 命令碼的反碼'用于校驗(yàn)下傳數(shù)據(jù)包
     'u As Parastruct
     mByte(3) As Byte                ' 通用參數(shù)'低字節(jié)在前'Little-Endian
     mLength  As Byte                     ' 下面的緩沖區(qū)的長(zhǎng)度'讀寫操作的字節(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)碼'見(jiàn)下面的定義
    mCommandNot As Byte                  ' 命令碼的反碼'用于校驗(yàn)上傳數(shù)據(jù)包
    mReserved(3) As Byte
    mLength As Byte                      ' 下面的緩沖區(qū)的長(zhǎng)度'讀操作的字節(jié)數(shù)
    mBuffer(MAX_DATA_SIZE) As Byte     ' 數(shù)據(jù)緩沖區(qū)
End Type

' 命令碼定義'按位說(shuō)明
  ' 位7為命令類型:  0=實(shí)現(xiàn)特定功能' 1=存儲(chǔ)器和SFR讀寫
   '對(duì)于"實(shí)現(xiàn)特定功能"命令類型:
    '位6 -位0為定義的具體命令碼 ' 命令碼為00H-7FH' 其中: 00H-3FH為通用標(biāo)準(zhǔn)命令' 40H-7FH為與應(yīng)用系統(tǒng)有關(guān)的特定命令
'目前版本定義了以下通用標(biāo)準(zhǔn)命令:
'0 H:            獲取調(diào)試固件程序的版本 ' 并取消未完成的上傳數(shù)據(jù)塊
'10 H:           獲取當(dāng)前應(yīng)用系統(tǒng)的版本和說(shuō)明字符串
' 對(duì)于"存儲(chǔ)器和SFR讀寫"命令類型:
'位6為數(shù)據(jù)傳輸方向:      0=讀操作/上傳' 1=寫操作/下傳
'位5-位4為數(shù)據(jù)讀寫寬度:  00=以字節(jié)為單位/8位' 01=以字為單位/16位' 10=以雙字為單位/32位' 11=以位為單位/1位
'位1-位0為存儲(chǔ)器空間:    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為未定義的錯(cuò)誤

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è)備序號(hào)
Public CH375DBG_Opened As Boolean        ' CH372/CH375設(shè)備被打開(kāi)標(biāo)志


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

' 應(yīng)用程序退出前'在所有操作之后'應(yīng)該調(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

 '獲取當(dāng)前應(yīng)用系統(tǒng)的版本和說(shuō)明字符串
Public Function CH375DBG_GetAppSysInfo(ver As Byte, StringBuffer() As Byte) As Boolean
' 輸入?yún)?shù): ver 指向一個(gè)字節(jié)變量單元'用于存放獲取的版本號(hào)
' StringBuffer 指向一個(gè)足夠大的字符串緩沖區(qū)'用于存放獲取的說(shuō)明字符串
 '獲取當(dāng)前應(yīng)用系統(tǒng)的版本和說(shuō)明字符串
'輸入?yún)?shù): ver 指向一個(gè)字節(jié)變量單元,用于存放獲取的版本號(hào)
'          StringBuffer 指向一個(gè)足夠大的字符串緩沖區(qū),用于存放獲取的說(shuō)明字符串
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
            '讀取應(yīng)答塊
            '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
              '操作成功,并且返回?cái)?shù)據(jù)
                ver = Up.mBuffer(0)    '返回版本號(hào)
                For i = 0 To (Up.mLength - 1)
                    StringBuffer(i) = Up.mBuffer(i + 1)     '返回說(shuō)明字符串
                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一個(gè)單元讀取數(shù)據(jù)
' 輸入?yún)?shù): addr 指定SFR的地址
'           data 指向一個(gè)字節(jié)變量單元'用于存放讀出的數(shù)據(jù)
' 從SFR一個(gè)單元讀取數(shù)據(jù)
' 輸入?yún)?shù): addr 指定SFR的地址
'           data 指向一個(gè)字節(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
           ' 讀取應(yīng)答塊
            If (((Up.mStatus = ERR_SUCCESS) And (Up.mCommandNot = Down.mCommandNot)) And (Up.mLength >= 1)) Then
               ' 操作成功,并且返回?cái)?shù)據(jù)
                Data = Up.mBuffer(0)  ' 返回?cái)?shù)據(jù)   '!date是動(dòng)態(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一個(gè)單元寫入數(shù)據(jù)
' 輸入?yún)?shù): addr 指定SFR的地址
'           data 指定準(zhǔn)備寫入的數(shù)據(jù)
' 向SFR一個(gè)單元寫入數(shù)據(jù)
' 輸入?yún)?shù): addr 指定SFR的地址
'           data 指定準(zhǔn)備寫入的數(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
            ' 讀取應(yīng)答塊
            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 指向一個(gè)足夠大的數(shù)據(jù)緩沖區(qū)'用于存放讀出的數(shù)據(jù)塊
'           count 指定讀取的字節(jié)數(shù)
' 從內(nèi)部RAM讀取數(shù)據(jù)塊
' 輸入?yún)?shù): StartAddr 指定內(nèi)部RAM的起始地址
'           buffer 指向一個(gè)足夠大的數(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ù)長(zhǎng)度,可以與單片機(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
          ' 讀取應(yīng)答塊
            If ((Up.mStatus = ERR_SUCCESS) And (Up.mCommandNot = Down.mCommandNot) And (Up.mLength >= Count)) Then
              ' 操作成功,并且返回?cái)?shù)據(jù)
                For i = 0 To (Count - 1)
                    Buffer(i) = Up.mBuffer(i)  ' 返回?cái)?shù)據(jù)
                Next i
                CH375DBG_ReadIRAM = True
                
            End If
        End If
    End If

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产综合久久精品| 老司机精品视频线观看86| 国产精品免费久久| 国产精品久久久久四虎| 日本一区二区在线不卡| 国产精品久久久久久久久久免费看| 日韩欧美一区二区三区在线| 精品国精品自拍自在线| 国产亚洲自拍一区| 亚洲精品午夜久久久| 午夜精品成人在线| 成人免费视频视频在线观看免费 | 久久久久国色av免费看影院| 国产精品人妖ts系列视频| 亚洲人亚洲人成电影网站色| 国产精品三级视频| 91精品婷婷国产综合久久 | 欧美久久一二三四区| 久久久久国产精品麻豆ai换脸 | 福利一区二区在线观看| av一区二区三区在线| 久久精品国产在热久久| 日韩欧美在线1卡| 亚洲美女少妇撒尿| 成人涩涩免费视频| 久久亚洲影视婷婷| 日韩成人一级大片| 884aa四虎影成人精品一区| 1024精品合集| 91天堂素人约啪| 中文字幕亚洲在| 成人国产视频在线观看| 国产午夜亚洲精品理论片色戒| 日本女人一区二区三区| 欧美日韩一区视频| 亚洲成年人影院| 欧美精品电影在线播放| 日韩**一区毛片| 日韩精品中文字幕一区二区三区| 亚洲r级在线视频| 欧美成人性福生活免费看| 免费在线观看一区二区三区| 日韩一区二区三区视频| 狠狠色狠狠色综合| 国产精品久久久久久亚洲毛片 | 91免费观看视频在线| 日本精品视频一区二区| 久久久久国产成人精品亚洲午夜| 久久99久久99小草精品免视看| 久久日一线二线三线suv| 亚洲成人黄色影院| 国产成人在线视频网站| 91欧美一区二区| 91精品国产综合久久精品麻豆 | 亚洲视频综合在线| 日韩和欧美一区二区| 天天综合日日夜夜精品| 国产成人精品一区二区三区网站观看 | 欧美区一区二区三区| 欧美一级高清大全免费观看| 国产精品三级久久久久三级| 国产精品国产三级国产aⅴ无密码| 国产视频视频一区| 亚州成人在线电影| av一区二区三区黑人| www日韩大片| 日本午夜一本久久久综合| 99精品欧美一区二区三区小说 | 日韩视频一区在线观看| 亚洲丝袜美腿综合| www.性欧美| 久久精品人人爽人人爽| 九色porny丨国产精品| 91精品麻豆日日躁夜夜躁| 午夜视频一区在线观看| 在线看国产日韩| 无码av中文一区二区三区桃花岛| 99精品在线观看视频| 亚洲欧美一区二区三区孕妇| 99国产精品久久久久| 国产精品青草综合久久久久99| 国产精品911| 国产精品国产精品国产专区不片| 成人av免费在线观看| 亚洲欧美综合在线精品| 91精品办公室少妇高潮对白| 国产精品不卡在线| 欧美性感一类影片在线播放| 亚洲精品写真福利| 日韩一区二区在线看| 黑人巨大精品欧美黑白配亚洲| 久久夜色精品国产噜噜av| 99在线精品观看| 亚洲成人7777| 国产精品天美传媒| 日本道精品一区二区三区| 青青草一区二区三区| 国产日韩亚洲欧美综合| 在线观看www91| 国产乱理伦片在线观看夜一区 | 亚洲女与黑人做爰| 精品国产乱码久久久久久浪潮| 成人毛片在线观看| 老司机免费视频一区二区| 国产精品精品国产色婷婷| 欧美熟乱第一页| 99精品久久免费看蜜臀剧情介绍| 亚洲不卡在线观看| 中文字幕在线不卡国产视频| 日韩欧美国产1| 538在线一区二区精品国产| 97久久精品人人做人人爽50路| 国产精品99久久久久久有的能看| 亚洲乱码国产乱码精品精可以看| 精品成人佐山爱一区二区| 欧美精品国产精品| 国产成人午夜电影网| 日本午夜精品视频在线观看| 久久天堂av综合合色蜜桃网 | 欧美三级在线看| 欧美吞精做爰啪啪高潮| 欧美综合天天夜夜久久| 日本韩国欧美三级| 欧美精品免费视频| 欧美一区二区三区的| 日韩一区二区影院| 精品国产百合女同互慰| 久久综合五月天婷婷伊人| 久久精品人人做人人爽人人| 中文天堂在线一区| 亚洲第一精品在线| 国产河南妇女毛片精品久久久| 国产经典欧美精品| 91搞黄在线观看| wwwwww.欧美系列| 亚洲三级在线免费观看| 蜜臀久久99精品久久久久久9 | 国产不卡免费视频| 欧美中文字幕不卡| 国产拍欧美日韩视频二区| 亚洲激情图片一区| 国产成人精品免费看| 在线观看一区二区视频| 26uuu久久综合| 亚洲福利视频一区二区| 成av人片一区二区| 欧美zozozo| 日本成人在线一区| 欧洲精品一区二区| 国产精品久久福利| 韩国v欧美v亚洲v日本v| 欧美精品在线观看播放| 一区二区成人在线观看| 99在线视频精品| 中文字幕一区二区三区av| 国产成人综合精品三级| 制服.丝袜.亚洲.中文.综合| 亚洲一区二区三区国产| 99久久99久久精品免费观看| 国产精品久久精品日日| 972aa.com艺术欧美| 中文字幕日本不卡| 日本乱码高清不卡字幕| 亚洲美女视频在线观看| 欧美在线视频日韩| 亚洲国产精品久久久久婷婷884| 精品视频999| 久久国产日韩欧美精品| 精品福利av导航| 粉嫩高潮美女一区二区三区| 国产精品丝袜在线| 99久久精品国产精品久久| 亚洲国产日产av| 日韩精品一区二区三区三区免费 | 精品久久久久久久久久久院品网| 奇米精品一区二区三区在线观看一| 欧美日韩国产成人在线免费| 久99久精品视频免费观看| 亚洲国产成人在线| 7878成人国产在线观看| 97久久精品人人澡人人爽| 欧美成人乱码一区二区三区| 偷偷要91色婷婷| 国产日韩欧美一区二区三区乱码| 色综合久久88色综合天天免费| 午夜精品一区二区三区三上悠亚| 欧美电影免费观看完整版| 91在线免费播放| 国产在线精品一区二区三区不卡| 一区二区三区国产| 久久久国产一区二区三区四区小说| 91久久精品一区二区三| 国产ts人妖一区二区| 日韩国产一区二| 日韩精品欧美精品| 亚洲一线二线三线视频| 亚洲欧美另类久久久精品2019| 国产亚洲欧美日韩日本| 久久久天堂av| 国产拍欧美日韩视频二区|