USBXPRESS 程序开发指南

时间:2021-11-14 03:25:52

USBXPRESS 程序开发指南

相关设备:

 这个程序文档适用于以下设备:

C8051F32x,C8051F34x, C8051F38x, C8051T32x, C8051T62x, CP2101, CP2102, CP2103, CP2104,CP2105

1.     简介

The Silicon Laboratories的USBXpress® 为C8051F32x, C8051F34x, C8051F38x, C8051T32x, 和 C8051T62x USB 微控制器和CP210x通信提了一个完整的主机和设备的软件解决方案.任何USB协议或主机设备驱动程序
需要的专业知识。相反,一个简单的,高层次的应用程序接口(API)为主机软件
和设备固件是用来提供完整的USB连接。

 

USBXpress 开发工具包包含Windows 设备驱动、Windows 设备驱动安装程序、主机接口、动态链接库、设备固件。

 

2.     主机API函数

主机函数在动态链接库里提供。主机接口DLL与USB通过设备驱动程序和操作系统的USB协议进行通信。下面是一个可用的API函数列表:

SI_GetNumDevices()             - 返回链接设备的数量

SI_GetProductString()         - 返回设备的描述

SI_Open()                       -打开设备并返回设备句柄

SI_Close()                     -取消挂起的IO和关闭设备

SI_Read()                       -重设备中读取一个数据块

SI_Write()                      - 往设备里写一个数据块

SI_FlushBuffers()              - 刷新设备的接收与发送缓冲区

SI_SetTimeouts()               - 设置读写数据块的超时时间

SI_GetTimeouts ()              - 读取读写数据块的超时时间

SI_CheckRXQueue()              - 返回设备的接收队列中的字节数

SI_SetBaudRate()               - 设定指定CP210x设备的波特率

SI_SetBaudDivisor()            -设定指定CP210x设备的波特率的分频值

SI_SetLineControl()            - 设定指定CP210x设备的控制线

SI_SetFlowControl()            -设定指定CP210x设备的流量控制

SI_GetModemStatus()            - 取得指定CP210x设备的调制解调器的状态

SI_SetBreak()                   - 设置CP210x设备的指定状态

SI_ReadLatch()                  - 获取CP210x设备的端口的锁存值

SI_WriteLatch()                  -设置CP210x设备的端口的锁存值

SI_GetPartNumber()              - 获取CP210x设备的型号

SI_DeviceIOControl()            -允许低级命令发送到设备驱动程序

SI_GetDLLVersion()              - 取得当前正在使用的DLL版本

SI_GetDriverVersion()         - 取得USBXpress驱动程序的版本

通常,用户使用SI_GetNumDevices()函数开起设备进行通信。主个调用将返回目标设备的数量。这个数字用在SI_GetProductString()函数上,用来返回一个设备的字符串形式的序列号。

要成功访问设备,必须通过SI_GetProductString()返回的数据做为参数传递给SI_Open()函数来找开设备。SI_Open()函数返回设备的句柄,为函数SI_Write()与SI_Read()这两个函数提供参数。当I/O通信操作完成后,调用函数SI_Close()函数数来关闭设备。

 

其他函数提供了刷新发送与接收缓冲区(SI_FlushBuffers)、设置与接收的超时时间(SI_SetTimeouts)、检查缓冲区的状态(SI_CheckRXQueue)、设备控制(SI_DeviceIOControl)

 

对于CP210x设备,提供了设置波特率(SI_SetBaudRate)的函数、设置波特率分频值(除数)(SI_SetBaudDivisior);调整、如字长、停止位、奇偶行的控制设置(SI_SetLineControl);设置硬件握手、软件握手和调制解调器控制信号(SI_SetFlowControl);取得调制解调器状态(SI_GetModemStatus)。CP2103/4/5附加功能函数取得设备端口(SI_ReadLatch) 设置端口(SI_WriteLatch)设备上额外的可用GPIO馆脚值,通过SI_GetPartNumber()返回的号码区分设备。

 

这些函数的功能将在下章详细介绍。类型与常量定义在”附录C++头文件SiUSBXp.h”中。

 

 

2.1 SI_GetNumDevices

描述:这个函数返回设备的链接数

支持设备: C8051F320/1/6/7,C8051F340/1/2/3/4/5/6/7/8/9/A/B/C/D,

C8051F380/1/2/3/4/5/6/7, C8051T320/1/2/3/6/7, C8051T620/1/2/3,CP2101/2/3/4/5

原型:SI_STATUS SI_GetNumDevices(LPDWORDNumDevices)

参数:1。NumDevices:一个DWORD类型的变量,返回的是存放设备数变量的地址

返回值: SI_STATUS=SI_SUCCESSor SI_DEVICE_NOT_FOUND or SI_INVALID_PARAMETER

 

2.2  SI_GetProductString

描述:这个函数返回一个不为空的序列号字符串或产品描述字符串,使用SI_GetNumDevices函数返回的数据。通过参数DeviceNum指定设备。第一个设备指数为0
最后一台设备是由SI_GetNumDevices返回的值 - 1

支持设备:C8051F320/1/6/7, C8051F340/1/2/3/4/5/6/7/8/9/A/B/C/D,

C8051F380/1/2/3/4/5/6/7,C8051T320/1/2/3/6/7, C8051T620/1/2/3, CP2101/2/3/4/5

原型:SI_STATUS SI_GetProductString(DWORD DeviceNum,LPVOID DeviceString,DWORDOption)

参数:1 DeviceNum:设备唯一序列号或描述字符串

      2 DeviceString:SI_DEVICE_STRING类型,返回一个设备描述符或字符串或一个代表终止的NULL。

      3 Options:DWORD类型的标志,以确定是否在DeviceString中包含一个序列号。产品说明,供应商ID,产品ID字符串。请参见“附录D-定义从C++
头文件SiUSBXp.h“中的标志。

返回值:SI_STATUS = SI_SUCCESS or

SI_DEVICE_NOT_FOUND or

SI_INVALID_PARAMETER

2.3  SI_Open

描述:为以后访问打开一个设备(使用SI_GetNumDevices函数返回的设备号)并返回一个设备句柄。

支持的设备:C8051F320/1/6/7,C8051F340/1/2/3/4/5/6/7/8/9/A/B/C/D,

C8051F380/1/2/3/4/5/6/7, C8051T320/1/2/3/6/7, C8051T620/1/2/3,CP2101/2/3/4/5

原型:SI_STATUS SI_Open (DWORDDeviceNum, HANDLE *Handle)

参数:1 DeviceNum:设备的索引,从0开始

      2 Handle:一个存放设备句柄的指针变量,为后来的访问提供的句柄

返回值:SI_STATUS = SI_SUCCESSor

SI_DEVICE_NOT_FOUND or

SI_INVALID_PARAMETER or

SI_GLOBAL_DATA_ERROR

 

2.4  SI_Close

描述:关闭一个通过SI_Open函数打开的设备句柄。设置句柄的值为INVALID_HANDLE_VALUE;

支持的设备:C8051F320/1/6/7,C8051F340/1/2/3/4/5/6/7/8/9/A/B/C/D,

C8051F380/1/2/3/4/5/6/7,C8051T320/1/2/3/6/7, C8051T620/1/2/3, CP2101/2/3/4/5

原型:SI_STATUS SI_Close (HANDLEHandle)

参数:1 Handle:SI_Open函数返回的句柄

返回值:SI_STATUS = SI_SUCCESSor

SI_INVALID_HANDLE or

SI_SYSTEM_ERROR_CODE or

SI_GLOBAL_DATA_ERROR

 

2.5  SI_Read

描述:从缓冲区中读取可用的字节并检索读取的字节数(可以小于要求的字节数)。如果OVERLAPPED的对象为NULL,则同步返回(这个是默认的情况)但不会阻止系统执行。如果OVERLAPPED对象初始化成功则立即返回。如果读取完成则状态将变成SI_SUCCESS,如果I/O发生问题则返回STATUS_IO_PENDING。如果返回的状态为STATUS_IO_PENDING,则OVERLAPPED对象可能使用WaitForSingleObject()函数等待,检索数据或取消使用GetOverlappendResult()和Cancello()函数(微软MSDN上有记载)。这个功能允许多个读取同时发生。如果调用SI_Read函数数有任何可用数据,它都会返回,以便检查NumBytesReturned,以确定返回请求的数据。为了确保SI_Read()函数返回的字节数据正确,请使用SI_CheckRxQueue()函数进行检查。

 

支持设备:C8051F320/1/6/7,C8051F340/1/2/3/4/5/6/7/8/9/A/B/C/D,

C8051F380/1/2/3/4/5/6/7,C8051T320/1/2/3/6/7, C8051T620/1/2/3, CP2101/2/3/4/5

原型:SI_STATUS SI_Read (HANDLE Handle, LPVOID Buffer, DWORDNumBytesToRead,DWORD *NumBytesReturned, OVERLAPPED* o = NULL)

参数:1 Handle:SI_Open函数返回的设备句柄。

      2 Buffer:存放读取数据的字符字节数组的地址。

      3 NumBytesToRead:读取设备的数据缓冲区字节数(0-64KB)

      4 NumBytesReturned:DWORD类型的变量地址,存放的是读入缓冲区的字节数

      5 (Optional):可用于异步读取的OVERLAPPED对象的地址

返回值:SI_STATUS = SI_SUCCESSor

SI_READ_ERROR or

SI_INVALID_PARAMETER or

SI_INVALID_HANDLE or

SI_SI_READ_TIMED_OUT or

SI_IO_PENDING or

SI_SYSTEM_ERROR_CODE or

SI_INVALID_REQUEST_LENGTH or

SI_DEVICE_IO_FAILED

2.6  SI_Write

描述:往设备的缓冲区写入特定的字节数。如果异步对象OVERLAPPED设为NULL则这个函数同步写(默认设置) 但不会阻止系统的执行。就象SI_Read()中描述的初始化OVERLAPPED对象一样。

支持设备:C8051F320/1/6/7,C8051F340/1/2/3/4/5/6/7/8/9/A/B/C/D,

C8051F380/1/2/3/4/5/6/7, C8051T320/1/2/3/6/7,C8051T620/1/2/3, CP2101/2/3/4/5

原型:SI_STATUS SI_Write (HANDLEHandle, LPVOID Buffer, DWORD NumBytesToWrite,DWORD *NumBytesWritten, OVERLAPPED*o = NULL)

参数:1 Handle:SI_Open函数返回的句柄。

     2 Buffer:要发送到设备的字节数组的地址。

     3 NumBytesToWrite:写到设备中的字节数(0-4096 bytes)

     4 NumBytesWritten:实际写入到设备中的字节数组的地址(DWORD类型)

     5 (Optional):异步写的OVERLAPPED对象的地址。

返回值:SI_STATUS = SI_SUCCESSor

SI_WRITE_ERROR or

SI_INVALID_REQUEST_LENGTH or

SI_INVALID_PARAMETER or

SI_INVALID_HANDLE or

SI_WRITE_TIMED_OUT or

SI_IO_PENDING or

SI_SYSTEM_ERROR_CODE or

SI_DEVICE_IO_FAILED

2.7  SI_FlushBuffers

描述:在’F32x/F34x’设备上,这个函数刷新USBXpress设备的接收缓冲区与设备的发送缓冲区。注:使用’F32x/F34x’时参数2与3不起作用。

      在CP210x设备上,参数2与3起作用。如果参数2 为非零值,CP210x设备的UART发送缓冲区被刷新;如果参数3为非零值,CP210x设备的UART接收缓冲区被刷新。如果参数2和3都为非零值,则CP210x设备的UART接收与发送缓冲区都被刷新。

支持设备:C8051F320/1/6/7,C8051F340/1/2/3/4/5/6/7/8/9/A/B/C/D,

C8051F380/1/2/3/4/5/6/7, C8051T320/1/2/3/6/7, C8051T620/1/2/3,CP2101/2/3/4/5

原型:SI_STATUS SI_FlushBuffers(HANDLE Handle, BYTE FlushTransmit,

BYTE FlushReceive)

参数:1 Handle:SI_Open函数返回的设备名柄。

     2 FlushTransmit:为非零值刷新CP210xUART的发送缓冲区。

     3 FlushReceive:为非零值刷新设备的接收缓冲区。

返回值:SI_STATUS = SI_SUCCESS or

SI_INVALID_HANDLE or

SI_SYSTEM_ERROR_CODE

2.8  SI_SetTimeouts

描述:设置读取与写入的超时时间。超时间被用在SI_Read与SI_Write函数数中,当函数被同步调用时。(异步函数OVERLAPPED被设为NULL的情况)。默认的超时时间是INFINITE(0xFFFFFFFE),但它可以被设置成0x0与0xFFFFFFFF之间的任意毫秒数。

支持的设备:C8051F320/1/6/7, C8051F340/1/2/3/4/5/6/7/8/9/A/B/C/D,

C8051F380/1/2/3/4/5/6/7, C8051T320/1/2/3/6/7,C8051T620/1/2/3, CP2101/2/3/4/5

原型:SI_STATUS SI_SetTimeouts (DWORDReadTimeout, DWORD WriteTimeout)

参数:1 ReadTimeout:SI_Read函数的超时时间(毫秒数)

     2 WriteTimeout:SI_Write函数的超时时间(毫秒数)

返回值:SI_STATUS = SI_SUCCESSor

SI_DEVICE_IO_FAILED

2.9  SI_GetTimeouts

描述:返回当前读取与写入的超时时间。如果值为0xFFFFFFFF(INFINITE) 则代表无限等待,否则超时时间为指定的毫秒数。

支持设备:C8051F320/1/6/7,C8051F340/1/2/3/4/5/6/7/8/9/A/B/C/D,

C8051F380/1/2/3/4/5/6/7, C8051T320/1/2/3/6/7, C8051T620/1/2/3,CP2101/2/3/4/5

原型:SI_STATUS SI_GetTimeouts (LPDWORD ReadTimeout, LPDWORD WriteTimeout)

      1ReadTimeout:SI_Read函数超时时间(毫秒数)

      2WriteTimeOut:SI_Write函数超时时间(毫秒数)

返回值:SI_STATUS = SI_SUCCESSor

SI_INVALID_PARAMETER or

SI_DEVICE_IO_FAILED

2.10 SI_CheckRXQueue

描述:返回接收队列中的字节数和状态值,标明如果RX队列就绪(SI_QUEUE_READY)是否发生溢出(SI_QUEUE_OVERRUN) 。如果发生溢出,建议数据传输停止,使用SI_FlushBuffers命令刷新所有缓冲区。

支持设备:C8051F320/1/6/7,C8051F340/1/2/3/4/5/6/7/8/9/A/B/C/D,

C8051F380/1/2/3/4/5/6/7,C8051T320/1/2/3/6/7, C8051T620/1/2/3, CP2101/2/3/4/5

原型:SI_STATUS SI_CheckRXQueue(HANDLE Handle, LPDWORD NumBytesInQueue,

LPDWORD QueueStatus)

参数:1 Handle:SI_Open返回的函数句柄。

     2 NumBytesInQueue:DWORD类型的地址,是目前在返回的接收队列中包含的字节数

      3 QueueStatus:DWORD类型的地址,是SI_RX_EMPTY(SI_RX_NO_OVERRUN),SI_RX_OVERRUN,SI_RX_READY标志。

返回值:SI_STATUS = SI_SUCCESSor

SI_DEVICE_IO_FAILED or

SI_INVALID_HANDLE or

SI_INVALID_PARAMETER

2.11 SI_SetBaudRate

描述:设置波特率。所支持的波特率列表请参阅设备数据手册。

支持的设备:CP2101/2/3/4/5

原型:SI_STATUS SI_SetBaudRate (HANDLE Handle, DWORD dwBaudRate)

参数:1 Handle:SI_Open返回的设备句柄

      2dwBaudRate:DWORD类型的值,指定的波特率的值

返回值:SI_STATUS = SI_SUCCESSor

SI_INVALID_BAUDRATE or

SI_INVALID_HANDLE or

SI_INVALID_PARAMETER or

SI_DEVICE_IO_FAILED

2.12 SI_SetBaudDivisor

描述:使用特定的分频值直接设置波特率

支持的设备:CP2101/2/3/4/5

原型:SI_STATUS SI_SetBaudDivisor (HANDLE Handle, WORD wBaudDivisor)

参数:1 Handle:SI_Open返回的设备句柄。

      2wBaudDivisor:指定设置的波特率除数值。

返回值:SI_STATUS = SI_SUCCESSor

SI_INVALID_HANDLE or

SI_INVALID_PARAMETER or

SI_DEVICE_IO_FAILED

2.13 SI_SetLineControl

描述:调整生产线控制设置:字长停止校验位等。请参考设备数据手册,进行有效的设置。

支持的设备:CP2101/2/3/4/5

原型:SI_STATUS SI_SetLineControl (HANDLE Handle, WORD wLineControl)

参数:1 Hanle:SI_Open返回的句柄。

      2wLineControl:Word类型变量,所需的生产线控制设置。可能输入的值如下:

                        Bits 0-3                  Numberof Stop bits

                         0:                         1 stopbit;

                         1:                         1.5stop bits;

                         2:                         2 stopbits;

                         Bits 4-7                  Parity

                         0:                          None

                         1:                          Odd

                         2:                          Even

                         3:                          Mark

                         4:                          Space

                         Bits 8-15                 Numberof bits per word

                         5,6,7,or 8

返回值:SI_STATUS = SI_SUCCESSor

SI_DEVICE_IO_FAILED or

SI_INVALID_HANDLE or

SI_INVALID_PARAMETER

2.14 SI_SetFlowControl

描述:调整以下的流量控制设置:设置硬件握手,设置软件握手,调制解调器控制信号。可以查看’SiUSBXp.h文件中的头定义’  对引角进行定义。

支持设备:CP2101/2/3/4/5

原型:SI_STATUS SI_SetFlowControl(HANDLE Handle, BYTE bCTS_MaskCode,

BYTE bRTS_MaskCode, BYTE bDTR_MaskCode, BYTE bDSRMaskCode,

BYTE bDCD_MaskCode, BYTE bFlowXonXoff)

参数:1 Handle:SI_Open返回的设备句柄。

      2bCTS_MaskCode:CTS引脚必须为如下值:SI_STATUS_INPUT 或者SI_HANDSHAKE_LINE

     3 bRTS_MaskCode:RTS引脚的必须为如下值:

       SI_HELD_ACTIVE SI_HELD_INACTIVE SI_FIRMWARE_CONTROLLED SI_TRANSMIT_ACTIVE_SIGNAL

      4bDTR_MaskCode:DTR引脚的必须为下列值:

       SI_HELD_INACTIVE SI_HELD_ACTIVE SI_FIRMWARE_CONTROLLED

      5bDSR_MaskCode:DSR引脚必须为如下值:

       SI_STATUS_INPUT SI_HANDSHAKE_LINE

      6bDCD_MaskCode:DCD引脚必须为如下值:

       SI_STATUS_INPUT  SI_HANDSHAKE_LINE

      7bFlowXonXoff:值为0设置软件流控制为关闭状态,如果为非零值,使用指定的值。

返回值:SI_STATUS = SI_SUCCESSor

SI_DEVICE_IO_FAILED or

SI_INVALID_HANDLE or

SI_INVALID_PARAMETER

2.15 SI_GetModemStatus

描述:从设备获取调制解调器的状态。包括调制解调器的引脚状态。

支持设备:CP2101/2/3/4/5

原型:SI_STATUS SI_GetModemStatus (HANDLE Handle, PBYTE ModemStatus)

参数:1 Handle:SI_Open返回的设备句柄。

     2lpbModemStatus:一个字节变量的地址,包含RS-232调制解调器控制线的状态。

        Bit 0:   DTR 状态

        Bit 1:   RTS 状态

        Bit 4:   CTS 状态

        Bit 5:   DSR 状态

        Bit 6:   RI 状态

        Bit 7:   DCD状态

返回值:SI_STATUS = SI_SUCCESSor

SI_DEVICE_IO_FAILED or

SI_INVALID_HANDLE or

SI_INVALID_PARAMETER

2.16 SI_SetBreak

描述:给CP210x设备发送一个中断状态(发送或复位),注意,此功能不一定与排队的传输数据同步。

支持设备:CP2101/2/3/4/5

参数:1 Handle:SI_Open返回的设备句柄。

      2 wBreakState:设置中断状态。值为0x0000复位;值为0x0001中断。

返回值:SI_STATUS = SI_SUCCESSor

SI_DEVICE_IO_FAILED or

SI_INVALID_HANDLE or

SI_INVALID_PARAMETER

2.17 SI_ReadLatch

描述:从设备获取当前端口的锁存值(至少是4位)

支持设备:CP2103/4/5

原型:SI_STATUS SI_ReadLatch (HANDLE Handle, LPBYTE Latch)

参数:1 Handle:SI_Open返回的句柄。

      2 Latch:返回的端口锁存值(逻辑高:1 逻辑低:0)

返回值:SI_STATUS = SI_SUCCESS or

SI_DEVICE_NOT_FOUND or

SI_FUNCTION _NOT_SUPPORTED or

SI_GLOBAL_DATA_ERROR or

SI_INVALID_HANDLE or

SI_INVALID_PARAMETER or

SI_DEVICE_IO_FAILED

2.18 SI_WriteLatch

描述:设置设备的当前端口的锁存值(至少四位)

支持设备:CP2103/4/5

原型:SI_STATUS SI_WriteLatch (HANDLE Handle, BYTE Mask, BYTE Latch)

参数:1 Handle:SI_Open返回的设备句柄。

     2 Mask:确定那些引脚改变(1:改变 0:没变)

     3 Latch:写入引脚的值(1:逻辑高 0 逻辑低)

返回值:SI_STATUS = SI_SUCCESSor

SI_DEVICE_NOT_FOUND or

SI_FUNCTION _NOT_SUPPORTED or

SI_GLOBAL_DATA_ERROR or

SI_INVALID_HANDLE or

SI_INVALID_PARAMETER or

SI_DEVICE_IO_FAILED

2.19 SI_GetPartNumber

描述:根据所传入的句柄,检查CP210x设备的部分号数字。

支持设备:CP2101/2/3/4/5

原型:SI_STATUS SI_GetPartNumber (HANDLE Handle, LPBYTE PartNum)

参数:1 Handle:SI_Open返回的设备句柄。

      2 Latch:返回的指针号码

返回值:SI_STATUS = SI_SUCCESSor

SI_INVALID_PARAMETER or

SI_INVALID_HANDLE or

SI_DEVICE_IO_FAILED

2.20 SI_DevicelOControl

描述:任何杂项设备的控制接口。第个输入输出操作需要单独调用SI_DeviceIOControl。不能同时进行输入输出操作。请参看MSDN里对函数DeviceloControl的介绍。

支持设备:C8051F320/1/6/7,C8051F340/1/2/3/4/5/6/7/8/9/A/B/C/D,

C8051F380/1/2/3/4/5/6/7, C8051T320/1/2/3/6/7,C8051T620/1/2/3

原型:SI_STATUS SI_DeviceIOControl(HANDLE Handle, DWORD IOControlCode,

LPVOID InBuffer, DWORD BytesToRead, LPVOIDOutBuffer,

DWORD BytesToWrite, LPDWORD BytesSucceded)

参数:1 Handle:SI_Open返回的设备句柄。

      2IOControlCode:选择控制功能的代码

      3 InBuffer:输入数据缓冲区的指针

      4BytesToRead:读入InBuffer的字节数。

      5 OutBuffer:输出缓冲区的指舛

      6BytesToWrite:从OutBuffer写的字节数

      7BytesSucceded:一个DWORD类开型的变量,包含读取的字节数的地址,一个输入操作或写入返回输出操作的字节数。

返回值:SI_STATUS = SI_SUCCESSor

SI_DEVICE_IO_FAILED or

SI_INVALID_HANDLE

2.21 SI_GetDLLVersion

描述:取得当前正在使用的DLL版本。返回的版本是两个DWORD值,HighVersion 和 LowVersion。与此对应的版本是A.B.C.D;A=(HighVersion>>16)&0xFFFF,B=HighVersion&

0xFFFF,C=(LowVersion>>16)&0xFFFF,D=LowVersion&0xFFFF

支持设备:C8051F320/1/6/7,C8051F340/1/2/3/4/5/6/7/8/9/A/B/C/D,

C8051F380/1/2/3/4/5/6/7, C8051T320/1/2/3/6/7,C8051T620/1/2/3, CP2101/2/3/4/5

原型:SI_STATUS SI_GetDLLVersion(DWORD* HighVersion,DWORD* LowVersion)

参数:1 HighVersion:一个DWORD变量包含高32位DLL的版本地址

      2 LowVersion: 一个DWORD变量包含低32位DLL的版本地址

返回值:SI_STATUS = SI_SUCCESS or SI_SYSTEM_ERROR_CODE

2.22 SI_GetDriverVersion

描述:获取当前在Windows系统目录中驱动程序版本。该版本返回两个DWORD值,HighVersion与LowVersion。对应的版本值为A.B.C.D。A=(HighVersion>>16)&0xFFFF,B=HighVersion&0xFFFF,C=(LowVersion>>16)&0xFFFF,D=LowVersion&0xFFFF。

支持设备:C8051F320/1/6/7,C8051F340/1/2/3/4/5/6/7/8/9/A/B/C/D,

C8051F380/1/2/3/4/5/6/7, C8051T320/1/2/3/6/7,C8051T620/1/2/3, CP2101/2/3/4/5

原型:SI_STATUS SI_GetDriverVersion(DWORD* HighVersion,DWORD* LowVersion)

参数:1 HighVersion:一个DWORD变量包含高32位DLL的版本地址

      2 LowVersion: 一个DWORD变量包含低32位DLL的版本地址

返回值:SI_STATUS = SI_SUCCESSor SI_SYSTEM_ERROR_CODE