精华内容
下载资源
问答
  • CYUSB.dll 驱动包

    2018-11-20 10:43:11
    包含许多版本的cyusb.dll 使用方法:将下载好的驱动按照版本copy到c#的项目文件夹中,就可以在项目中添加其引用,使用其函数对usb设备进行操作了
  • CyUSB.DLL类库

    2020-07-27 14:10:19
    使用C#语言,运用最新的Cypress Suite USB 3.4.7提供的cyusb.dll编写程序,
  • CyUSB.dll接口函数的详细说明。 之前发的只是sys驱动和dll文件,没有包含此说明,现在补上,资源分免了!
  • 调用cyUSB.dll示例(C#源码)

    热门讨论 2011-02-28 16:46:04
    调用cyUSB.dll类库进行USB串口通讯,开发上位机适用。
  • 只能在使用Cypress公司的USB芯片和驱动的前提下才能使用CyUSB.dll进行上位机软件的开发吗?
  • CyUSB.dll的调用经验介绍

    千次阅读 2019-07-05 11:46:13
    之前一直想用Labview制作这个界面,因为labview这软件太惹人喜欢了,不需要写代码就能把工作做完,我先花了一天多去学了点LV的基本的操作,然后试着用它去调用cypress公司给的USB 的驱动程序(CyUSB.dl)可是问题...

    最近一直在做EZ-USB的数据传输方面的东西,今天是捡起了多年没用过的VS并用C#编写了上位机部分的界面。今天的工作是建立在前几天的痛苦的经历上的。

      之前一直想用Labview制作这个界面,因为labview这软件太惹人喜欢了,不需要写代码就能把工作做完,我先花了一天多去学了点LV的基本的操作,然后试着用它去调用cypress公司给的USB 的驱动程序(CyUSB.dl)可是问题来了,首先是LV不能识别这个驱动,说必须用32位版的LV才行。

      我重新装了一个32位的,接下来更痛心的是,驱动是能识别了,可是里面的程序调用不了,根本不显示里面的程序。也许真的能调用只是我LV水平不够,不过如果在花大量的时间去学LV,估计也不是太可能了。进行到这一步,感觉很无奈,难道要我放弃这么好用的软件LV并且花了这么长时间研究的东西,去用别的软件来实现。

      最终还是痛下决心,使用VS并用C#来编写,结果看来这个选择是对的,使用C#编写界面也很简单,而且编出来的界面要比LV要细致,毕竟是微软公司自己的软件在自家的平台上运行,做出来的界面我感觉还算满意把。然后就说说我编写是调用DLL文件的一些体会把。

      要想调用DLL中的程序首先得清楚里面的函数才行,这一点最好办,cypress公司把所有相关的东西都做成了文档,下载下来看就行,而且这文档简直就是源代码啊,稍做修改就可以在程序中直接使用。其实好多公司都在这么做,这样的文档会极大的减轻工程师的工作。

     多了不说,说说文档中的函数还有作用,由于全是英文的,看起来稍微费点劲,有些解释的不到位的欢迎指正。

     对于文档中给出的这么多的函数和类,首先抓住其中最重要的一个类:USBDevices

     这个类是CyUSB中的核心类,它会动态的呈现出当前已经连接到电脑的CyUSB设备,通过它可以单独的找出某个设备(通过设备的VID和PID)并与这个设备进行通信。这个类的使用举例如下:

    USBDeviceList usbDevices = new USBDeviceList(CyConst.DEVICES_CYUSB);
    myDev = usbDevices[0x04B4, 0x8613] as CyUSBDevice;// 获取第一个设备号为VendorID == 0x04B4 and ProductID == 0x8613的设备

      然后很重要的一个函数就是:CyUSBDiceves

      这个函数是连接CyUSB.sys驱动文件的一个关键类,通过它可以和USB设备进行各种通信,它里面的额函数暂且先不介绍,后面用到时再说。

      然后最让我上心的就是CyControlEndPoint部分了,这部分是读写端点RAM时主要用到的东西。接下来且听细说。

      说函数之前说说里面最重要的几个属性:Index,Target,ReqCode,ReqType,Value和Direction。最后的Direction调用时基本不会用到,后面会细说。

      首先Index是与Target配套用的,如果Target设置的是TGT_ENDPT属性的话(一般如此),Index只的就是ENDPOINT的接口号。例如index = 2;说明当前使用的是EP2。

      然后是ReqCode与ReqType是配套使用的。ReqCode是用来向USB设备声明有一条命令需要被执行(这是翻译过来的很拗口)说白了就是想USB请求执行命令,这个看名字也能猜个差不多。ReqType是向USB指示它该如何译码ReqCode从而控制数据的转移。也就是说不同的译码方式对应这不同的代码,不同的代码控制USB做不同类型(方向)的数据转移。

    如果ReqCode为REQ_STD,则ReqCode的可能值可以在USB2.0的说明文档里面找(底层协议)。

    如果ReqCode为REQ_CLASS,则ReqCode的可能值是被记录在设备的USB类中。

    如果ReqCode为REQ_VENDOR,则ReqCode将会为设备声明一个针对不同厂商的专门的代码。

      接下来说说这个类中的函数:Read();Write();XferData();

      bool Read(ref byte[] buf,ref int len)

      这个函数的返回值是bool类型,true表示读操作成功。

      buf存储了当前读回的数据

      len表示读回了多少byte的数据

      需要注意的是在调用这个函数前必须先设置CyControlEndPoint类中的必要的属性,之前已经提到过了。

      bool Write(ref byte[] buf,ref system.int32 len)

      跟Read()类似此处不详述。

      XferData()这个函数会在Read()和Write()函数中被内部调用,可以不显式出现。如果必须要用到是必须使用Direction属性指明方向,前面说Direction不常用就是这个原因。

    这个DLL 中的函数太多,我们需要抓住我们需要的函数和类,然后依次往后倒,看在使用这个函数和类时又调用了什么,一次往下看,不能闲烦,看懂了也就这么些东西。这里我也没有说全,先写这么多,如果有在做这个的,可以找我一块讨论。

    原文:https://blog.csdn.net/belvey/article/details/47361411 
     

    展开全文
  • cyusb.dll cyapi.h.cyapi.lib

    热门讨论 2011-06-01 16:08:31
    为大家分享一些cyusb的资料 包括cyusb.dll cyapi.h.cyapi.lib及其相关的介绍,本人在用vb开发ucyusb 如果有兴趣的朋友可以一起交流
  • C#调用Cyusb.dl方法

    热门讨论 2013-03-02 20:53:26
    使用C#语言,运用最新的Cypress Suite USB 3.4.7提供的cyusb.dll编写的程序,更改其中的PID和VID后可以直接使用。对学习用c#编写USB上位机程序非常有用。
  • CYUSB 驱动 cyusb.dll使用

    热门讨论 2010-05-08 19:01:59
    CYUSB驱动 CYUSB驱动 CYUSB驱动CYUSB驱动 cyusb.dll
  • cyUSB类库(包括cyAPI,cyUsb.dll以及使用说明),结合我前面上传的几个源码进行系统地学习,开发上位机。拿走不谢。
  • Cypress.dll

    2014-05-05 15:10:52
    Cypress 开发驱动 相关文件 CCD驱动 Temp驱动
  • 2. CyUSB C# DLL. Following directories are included this package. 1.CyAPI => library => cpp This directory contains CyAPI C++ Static Library source code. ReadMe.txt :Refer ReadMe.txt file for more ...
  • inf文件说明以及CyUSB.inf实例详解

    千次阅读 2014-11-18 10:32:03
    DLL   时,创建一个引用。 2.               AddReg 样例: [DefaultInstall] AddReg = add_registry_section[,add_registry_section]   [add_registry_...

    Inf简介

    InfDevice information File)是Microsoft公司为硬件设备制造商发布其驱动程序推出的一种文件格式,Inf文件中包含硬件设备的信息或脚本以控制硬件操作。在Inf文件中指明了硬件驱动该如何安装到系统中,源文件在哪里、安装到哪一个文件夹中、怎样在注册表中加入自身相关信息等。

    C:/Windows/INF文件夹中存放有大量的inf文件。Inf文件其实是一种纯文本文件,可以用任意一款文本编辑器打开进行编辑。

    INF的功能

    1.       复制文件、删除文件、或重新命名文件。

    2.       新增或删除注册表(Registry)中的项目。

    3.       修改重要的系统设置文件(如Autoexec.batConfig.sys.INI等)

     

    Inf文件的编写规则:

    1.       每个inf文件有许多节(section)组成,节名用方括号括起来。这些节名有些是系统定义好的,有一些是用户自定义的。每一个节名最长为255个字符,节与节之间没有先后顺序的区别,另外,同一个Inf文件中如果出现两个同样的节名,则系统会自动将这两个节名下面的条目合并到一起。

    2.       在节与节之间的内容叫条目,每一个节又是由许多的条目组成,每个条目都是由形如”signature=”$WINDOWS NT$””的形式。如果每一个条目的等号后面有多个值,则每一个值之间用“,”号分隔开。

    3.       Inf文件对大小写不敏感。

    4.       “;”后面的内容为注释。

    5.       如果一个条目的内容过多,在一行无法书写完全,则用“\”将一行内容书写多行。

    关键section有:

    [Version]版本描述信息,主要用于版本控制。

    [Strings]字符串信息,用于常量定义。

    [DestinationDirs]定义系统路径信息,指定CopyFilesRenFilesDelFiles入口的缺省操作目录。

    [SourceDisksNames]指明源盘信息。

    [SourceDisksFiles]指明源盘文件名。

    [DefaultInstall]执行安装

     

    INF文件路径:

    Windows 98/Me:操作系统会把驱动程序中包含安装信息的I N F 文件直接拷贝到自身的inf文件夹中( 位于C :\Windows\INF),因此,只需知道驱动程序原来使用的INF 文件名就能在Windows INF 文件夹中找到对应文件。

    Windows 2000/XP:Windows 2000/XP 却不是直接拷贝INF 文件,它们对没有经过微软认证的驱动程序的INF 文件都会改名存放,而且目前不少驱动程序都没经过认证,所以要找到它们还要费些功夫。如果你注意观察,会发现在INF 文件夹中有很多以OEM 开头的文件,这就是Windows2000/XP 的杰作。它们把没有经过认证的安装信息文件改名为OEMx.INF OEMx.PNF(PNF 为预编译信息文件)来存放。我们只需要根据上面关于INF文件的内容介绍便可以轻松找到相应文件。x是从数字0开始的正整数,例如:OEM0.infOEM0.PNF表示第一个没有认证的驱动程序安装信息文件,依此类推。

     

    Inf文件详细说明:

    一、Version样例:

    [Version]

    Signature="$ CHICAGO$"

    Class=USB

    ClassGUID={36FC9E60-C465-11CF-8056-444553540000}

    provider=%MSFT%

    DriverVer=03/21/2012,1.0.0.1

    说明:

    Signature此条目主要描述此INF文件支持的设备类型和适用的操作系统,只能取值为$Windows NT$$Chicago$  $Windows95$。如果不是以上这些字符,则不被认可为inf文件。该条目如果是$Windows95$表示该INF文件只适用于Windows95/98的系统,如果是$Chicago$表示该INF文件适用于Windows95/98Windows2000以上的操作系统,如果是$Windows NT$表示该INF文件只适用于Windows2000/XP/2003及以上的操作系统。

    Class此条目表明设备的类型,常见的有:Display(显示设备,如显卡)、Media(多媒体设备,如声卡)、Net(网络设备,如网卡)、Modem(调制解调器)、Printer(打印设备)、Image(图像捕获设备,如摄像头)、USB(通用串行总线控制器)。

    ClassGUID设备的GUID,如果设备是一个标准类别,使用标准类的名称和GUID,否则创建一个自定义的类别名称,并自定义它的GUID

    Provider设备提供商,对应设备管理器中显示的设备提供商的信息。

    DriverVer对应设备管理器中显示的驱动程序版本的信息。

     

    二、DestinationDirs样例:

    [DestinationDirs]

    DefaultDestDir=DRID[,subdir]

    目录位置DRID说明:

    DRID

    目录

    10

    C:\WINDOWS目录

    11

    C:\WINDOWS\System目录

    12

    C:\WINDOWS\System32\drivers目录

     

    三、SourceDisksNames样例:

    [SourceDisksNames]

    disk-ordinal=”disk-description”,disk-label,disk-serial-number

    罗列源文件所在盘符序列码、盘描述符、盘卷标号和盘序列号。

    其中disk-ordinal是盘符序列码,标识一个源盘,具有唯一性,一般可设置为从1开始递增的整数,0不是一个有效的盘符序列码。当存在多个源盘时,盘符序列码之间不能重复。disk-description是盘描述符,用双引号括起来的字符串或字符串宏描述盘的内容或目的。安装引擎将该字符串显示在对话框内以提示用户。disk-label为源盘的卷标识。disk-serial-number被设置为0

     

    四、DefaultInstall节说明

    此节指定包含的安装指令节,其中每一个条目将会成为一节。

    [DefaultInstall]节中定义的操作:

    LogConfig=log-config-section-name[,log-config-section-name]... ;Log日志文件配置

    Copyfiles=file-list-section[,file-list-section]... ;复制文件

    Renfiles=file-list-section[,file-list-section]... ; 文件改名

    Delfiles=file-list-section[,file-list-section]... ; 删除文件

    UpdateInis=update-ini-section[,update-ini-section]... ; 更新Inis

    UpdateIniFields=update-inifields-section[,update-inifields-section]... ; 更新Ini字段

    AddReg=add-registry-section[,add-registry-section]... ; 添加注册项

    DelReg=del-registry-section[,del-registry-section]... ; 删除注册项

    Ini2Reg=ini-to-registry-section[,ini-to-registry-section]... ; Ini文件转换为Reg文件

    以上各条目并非全部必须。节名必须为可见字符。每一个条目包含一到多个节,第一个命名之后的所有命名必须以“,”引导。

    以下介绍几个经常用到的操作:

    1.       Copyfiles

    样例:

    [DefaultInstall]

    CopyFiles = copyfile_list_section[,copyfile_list_section]

     

    [copyfile_list_section]

    dest_filename,[source_filename],[,flags]

    [dest_filename,[source_filename],[,flags]]

    说明:

    dest_filename

    必选项。用于指定目标文件名的字符串。如果不提供 source_filename,则使用 dest_filename 作为源文件名。

    source_filename

    必选项。用于指定源文件名的字符串。如果 source_filename  dest_filename 相同,则可省略source_filename

    flags

    可选项。用于指定在复制进程期间执行某个操作的数字值。下表列出了 Windows CE 支持的值。

    标志

    说明

    COPYFLG_WARN_IF_SKIP

    0x00000001

    用户尝试跳过发生错误后产生的文件时警告他。

    COPYFLG_NOSKIP

    0x00000002

    不允许用户跳过复制文件的操作。

    COPYFLG_NO_OVERWRITE

    0x00000010

    不改写目标目录中的现有文件。

    COPYFLG_REPLACEONLY

    0x00000400

    仅当源文件存在于目标目录中时才将它复制到目标目录中。

    CE_COPYFLG_NO_DATE_DIALOG

    0x20000000

    如果目标文件比源文件新,请勿复制此文件。

    CE_COPYFLG_NODATECHECK

    0x40000000

    改写目标文件时忽略数据。

    CE_COPYFLG_SHARED

    0x80000000

    考虑共享 DLL 时,创建一个引用。

    2.       AddReg

    样例:

    [DefaultInstall]

    AddReg = add_registry_section[,add_registry_section]

     

    [add_registry_section]

    reg_root_string,subkey,[value_name],flags,value[,value]

    [reg_root_string,subkey,[value_name],flags,value[,value]]

    reg_root_string

    必选项。用于指定注册表根位置的字符串。下表显示了注册表根及其缩写。

    注册表根字符串

    注册表根

    HKCR

    HKEY_CLASSES_ROOT

    HKCU

    HKEY_CURRENT_USER

    HKLM

    HKEY_LOCAL_MACHINE

    HKR

    与注册表关键子有关,最适合AddReg命令出现的地方。比如,注册表中每个设备的“硬件”子键:…/Enum/枚举器ID/设备ID,与此相对的注册表中每个驱动程序指定的“软件”子键:…/CLASS/GUID/设备ID等。

    subkey

    必选项。用于指定如 Strings 节中定义的字符串关键字或 reg_root_key 下要设置的注册表路径的值。此值可以指定以下项:

    ·   将添加到给定注册表路径末尾处的注册表的新子项。

    ·   将写入其他指定值的现有子项,这些值可能替换给定子项的现有值。

    ·   要和其初始值项一起添加到注册表中的新子项。

    value_name

    可选项。用于指定现有子项值中的值名称或创建要添加的新值名称的字符串。如果被省略,则使用默认注册表值名称。

    flags

    必选项。用于指定注册表项的数据类型和/或控制添加注册表根项的操作的值。下表列出了 Windows CE 支持的标志值。

    标志

    数据类型说明

    FLG_ADDREG_NOCLOBBER

    0x00000002

    如果注册表项存在,请不要改写它。您可以将此标志与表中的其他标志组合。

    FLG_ADDREG_TYPE_SZ

    0x00000000

    REG_SZ 注册表数据类型。通常为默认类型,这样在注册表项操作此类型的 value 时可省略此标志。

    FLG_ADDREG_TYPE_MULTI_SZ

    0x00010000

    REG_MULTI_SZ 注册表数据类型。其后的 value字段可以包含由逗号隔开的字符串列表。不需要字符串值的 NULL 结束符。

    FLG_ADDREG_TYPE_BINARY

    0x00000001

    REG_BINARY 注册表数据类型。其后的 value 字段必须是由逗号分隔(每个字段为一字节)的数值列表且不能使用 0x 十六进制前缀。

    FLG_ADDREG_TYPE_DWORD

    0x00010001

    REG_DWORD 注册表数据类型。只支持 Win32 Setup .inf 文档中的非兼容格式。

    value

    必选项。用于指定由 value_name 给出并添加到注册表项中的实际数据的值。对指定的类型应该使用合适的格式。

     

    五、[Manufacturer]节说明

    该节标志一个或者多个用INF文件安装的设备的制造商,它也为制造商的设备即驱动程序的安装定义Models节名。每个INF文件都必须有Manufacturer节。

    样例:

    [Manufacturer]
    %MfgName%=Microsoft

     

    [Microsoft]
    %USB/VID_045E&PID_930A.DeviceDesc%=BULKUSB.Dev, USB/VID_045E&PID_930A

    说明:

    Strings节中可以找到%MfgName%定义的字符串,例如在Strings节中定义MfgName=”Intel”,表明设备制造商是Intel。而右边的Microsoft也是制造商的Models节的节名。该节名是有Inf编写者自己定义的,不属于系统节名。每个制造商的Models节至少标识一个设备,并规定设备的VIDPID。同时引用这个设备inf文件的Install节。该节也可以规定一个或多个附加设备ID。当设备管理器发现设备检测ID与此节定义ID相符时,设备管理器就知道找到了正确的INF文件。

     

    六、[install.Service]节说明

    该节包含一个或多个AddService命令,用以控制一个特定驱动程序的服务装载的时间和方式,控制本服务对其他服务和下一级驱动程序的依赖等。

    样例:

    [BULKUSB.Dev.NT.Services]

    Addservice = BULKUSB, 0x00000002, BULKUSB.AddService

     

    [BULKUSB.AddService]

    DisplayName    = %BULKUSB.SvcDesc%

    ServiceType    = 1                  ; SERVICE_KERNEL_DRIVER

    StartType      = 3                  ; SERVICE_DEMAND_START

    ErrorControl   = 1                  ; SERVICE_ERROR_NORMAL

    ServiceBinary  = %\System32\Drivers\BULKUSB.sys

    LoadOrderGroup = Base

    说明:

    其中BULKUSB是指定的所需安装服务的名称。对一个设备,这个值通常是该设备驱动程序的属性。0x00000002是一个系统指定的标记,不同的标记有不同的服务功能。BULKUSB.AddServiceinf文件编写者定义的特定节,其中包括了所需要添加的服务项目,该节的定义可以在服务子键中观察其对应的子项。

    针对不同安装平台,需要对其完成节名修饰,如

    [BULKUSB.DEV.NT.Services]

    [BULKUSB.DEV.NTAMD64.Services]

     

    七、节名修饰

    Install节通常包含指导安装程序安装所需软件的实际指示。该节必须在一个设备或者型号(Models)的条目中引用。根据节名的修饰,选择驱动相应的工作平台。

    样例:

    [install-section-name]

    ……

    无修饰表示在Windows 9x平台中选择安装的条目。

    [install-section-name.nt]

    ……

    .nt修饰表示在Windows 2000平台中选择安装的条目。

    [install-section-name.ntx86]

    ……

    .ntx86表示限定在x86为基础的Windows 2000平台上安装的驱动。

    Windows Server 2003 SP1 和更高 Windows 版本上的驱动程序 INF 文件必须使用 .ntia64  .ntamd64 正确修饰 [Manufacturer] 节和 [Models] 节名称中的条目,以指定非 x86 系统上的操作系统版本。此更改不会影响基于 x86 的系统的 INF 文件或非 PnP 驱动程序的 INF 文件(包括基于 x64 的体系结构的文件系统驱动程序INF 文件)。

    以下CyUsb.inf实例:

    首先要明白一个INF文件的基本结构:INF由节组成,即一个个段组成。每个段的功能不一样。(大部分书上把这个段叫作“节”)

    [Version]段:主要用说明版本信息的。

    [Strings]段:字符串信息,用于常量定义,用于显示。凡在其他段中出现的%XXXX%(就是两个百分号夹着一组字母),则对应的就会在Strings段里对应着它的一个字符串。

    [SourceDisksNames]段: 定义安装源文件所在磁盘,一般为1,表示在第一个磁盘。此节可无。

    [SourceDiskFiles]段:驱动程序文件列表及被安装的位置,该节必须结合[SourceDisksNames]节才能知道具体的位置。如“atinbtxx.sys=1”,则你必须到[DestinationDirs]节去查看“1”具体代表那个位置。

    [DestinationDirs]段:  这里表示的就是上述驱动文件安装到什么地方。

    [Defaultinstall]段和[Install]段:这里表示安装段,对实际文件进行操作,比如说复制,删除,添加注册表等,但是安装段的名字不一定是这两个,可以通过Model段中指明哪个段是安装段。

    [Model]  :此段用来指明安装段的名称。即说明哪个段是安装段。格式:%xxxx%=安装段名,USB\VID_04B4&PID_8613.所以这里不仅指明了安装段,还设置了引导安装的VID,PID,当与检测到设备的PID和VID相同时,则设备管理器认为该设备找到了自己的安装信息文件(INF文件),从而开始引导安装。

    [Manufacturer]段: 此段用来指定设备供应商的名称,这个名称同时也是Model段。

    关于INF文件的相关语法:

    1、最后应该明白这8个段,有两个段不是直接显示出来的,就是[Model]和[Install],都是通过别的段指明的。

    2、关于段的定义:我个人认为,只要在INF文件中将自己的段名用中括号包起来即可,如[MySection]...... 则这个MySection就可以认为是一个段了。

    3、各个段之间的关系是并行的关系。如果两个段名相同,则接成一个段。不区分大小写

    4、字符串标记,格式%xxxxxx%,这是一个字符串的标记,并不是字符串,他只是代表一个字符串,这个字符串在Srtings段定义,当然可以把这个字符串和一个段名关联起来。

    例如:[Manufacturer]
    %MFGNAME%=Cypress
    [Cypress]

    ......

    [Strings]

    MFGNAME="Cypress"                 // %MFGNAME%是个字符串标记,代表的字符串为“Cypress”。这个字符串和model段名关联了。

    下面是CyUSB.inf文件

    [Version] //版本段
    Signature="$CHICAGO$"   //Signature必须一般为此值
    Class=USB //驱动程序的类别,说明此为USB设备
    ClassGUID={36FC9E60-C465-11CF-8056-444553540000}  //对应USB设备的GUID值。不同设备的GUID值不同。 
    provider=%PROVIDER% //INF文件的提供者,%PROVIDER%是一个字符串标记,在Strings段可以看到它所指的字符串为"Cypress"

    [SourceDisksNames]
    1=%CYUSB_INSTALL%,,, 表示安装在磁盘1

    [SourceDisksFiles] //待安装的源文件,即待安装的驱动程序
    CyUsbME.sys = 1 //1表示要安装到哪个目录,具体那个目录在[DestinationDirs]说明
    CyUsb.sys = 1
    CyUsb.spd = 1

    [Manufacturer] //指定设备供应商,同时也指定了那一段为Model段
    %MFGNAME%=Cypress //Cypress为Model段

    [Cypress] //此为Model段,并列出相应的安装段,可以列写多个设备PID,VID。用来表示响应不同的固件。
    ; Cypress FX2LP default ID

    %VID_04B4&PID_8613.DeviceDesc%=CyUsb, USB\VID_04B4&PID_8613//CyUsb被设置为安装段

    ; Cypress FX1 default ID

    %VID_04B4&PID_6473.DeviceDesc%=CyUsb, USB\VID_04B4&PID_6473

    ; Cypress FX2LP Example Device.  DVK firmware examples use this VID/PID

    %VID_04B4&PID_1004.DeviceDesc%=CyUsb, USB\VID_04B4&PID_1004

    [DestinationDirs]
    CyUsbME.Files.Ext = 10,System32\Drivers   //意思是把CyUsbME.Files.Ext ,CyUsb.Files.Ext里的东西指定了方向,即右边的路径。这里没有操作,只是,10,表示C盘下的windows目录
    CyUsb.Files.Ext = 10,System32\Drivers //CyUsbME.Files.Ext ,CyUsb.Files.Ext是两个段,在后面定义了,可以看到这两个段代表了两个驱动文件CyUsbME.sys

    [CyUsb]//此段为安装段,开始向[DestinationDirs]所示路径安装文件
    CopyFiles=CyUsbME.Files.Ext //CopyFiles是个指令,即将=后面的文件CyUsbME.Files.Ext安装到DestinationDirs]所示路径安装文件,
    AddReg=CyUsbME.AddReg //在注册表中添加相应的新的子健,进行相应操作,操作在CyUsbME.AddReg段中放着

    [CyUsb.HW]
    AddReg=CyUsb.AddReg.Guid //在HW下的注册

    [CyUsb.NT] //在NT(大于win98的平台)平台下的安装及注册
    CopyFiles=CyUsb.Files.Ext
    AddReg=CyUsb.AddReg

    [CyUsb.NT.HW]
    AddReg=CyUsb.AddReg.Guid

    [CyUsb.NT.Services]//添加安装文件的服务信息

    Addservice = CyUsb, 0x00000002, CyUsb.AddService  // Addservice 是个操作指令格式:Addservice =需要服务的安装的安装段名,0x00000002是固定值,安装服务信息段名
    [CyUsb.AddService]//安装服务信息段

    DisplayName    = %CyUsb.SvcDesc%
    ServiceType    = 1                  ; SERVICE_KERNEL_DRIVER
    StartType      = 3                  ; SERVICE_DEMAND_START//2值表示为自动安装
    ErrorControl   = 1                  ; SERVICE_ERROR_NORMAL
    ServiceBinary  = %10%\System32\Drivers\CyUsb.sys  //这个表示驱动所在路径,最终可在设备管理器中看到
    LoadOrderGroup = Base //不知道干嘛的

    [CyUsbME.AddReg] //不同安装段的注册表操作
    HKR,,DevLoader,,*ntkern
    HKR,,NTMPDriver,,CyUsbME.sys

    [CyUsb.AddReg] //不同安装段的注册表操作
    HKR,,DevLoader,,*ntkern
    HKR,,NTMPDriver,,CyUsb.sys

    [CyUsbME.Files.Ext] //待安装的驱动程序文件
    CyUsbME.sys

    [CyUsb.Files.Ext] //待安装的驱动程序文件
    CyUsb.sys

    [CyUsb.AddReg.Guid] //不同安装段的注册表操作
    ;HKR,,DriverGUID,,%CyUsb.GUID%

    ;---------------------------------------------------------------;
    [Strings] //一些显示的字符串,在设备管理器中可以看到
    PROVIDER="Cypress"
    MFGNAME="Cypress"
    CYUSB_INSTALL="Cypress Generic USB Driver Installation Disk"
    VID_04B4&PID_8613.DeviceDesc="Cypress EZ-USB FX2LP - EEPROM missing"
    VID_04B4&PID_6473.DeviceDesc="Cypress EZ-USB FX1 - EEPROM missing"
    VID_04B4&PID_1004.DeviceDesc="Cypress EZ-USB Example Device"
    CyUsb.SvcDesc="Cypress Generic USB Driver"

    ;CyUsb.GUID="{AE18AA60-7F6A-11d4-97DD-00010229B959}"


    展开全文
  • cyusb驱动用于win764位

    2015-10-29 15:37:42
    用于CY68013-usb驱动的sys文件,可以支持WIN7-64位系统
  • CyAPI.dll C++ API库源码

    2017-05-11 02:32:46
    CyAPI.dll C++ API库源码
  • DeviceIoControl()可以利用Io Control (aka IOCTL) code操作USB设备驱动,这些IOCTL码由谁... CyUSB.dll? CyUSB.sys?) 答案:cyioctl.h 例如:#define IOCTL_ADAPT_GET_DRIVER_VERSION CTL_CODE(FILE_DEVICE_UNKN...

    DeviceIoControl()可以利用Io Control (aka IOCTL) code操作USB设备驱动,这些IOCTL码由谁定义由谁解释呢?(CyAPI.lib? CyUSB.dll? CyUSB.sys?)

    答案:cyioctl.h
    例如:
    #define IOCTL_ADAPT_GET_DRIVER_VERSION         CTL_CODE(FILE_DEVICE_UNKNOWN, IOCTL_ADAPT_INDEX, METHOD_BUFFERED, FILE_ANY_ACCESS)

    ..

    #define IOCTL_ADAPT_GET_ALT_INTERFACE_SETTING CTL_CODE(FILE_DEVICE_UNKNOWN, IOCTL_ADAPT_INDEX+2, METHOD_BUFFERED, FILE_ANY_ACCESS)

    至于“FILE_DEVICE_UNKNOWN, IOCTL_ADAPT_INDEX, METHOD_BUFFERED, FILE_ANY_ACCESS”这些东西的定义,应该是在Windows相关头文件or库里面吧。

     

    这是IOCTL Interface的IOCTL_ADAPT_SEND_EP0_CONTROL_TRANSFER的使用范例

    Description

    This command sends a control request to the default Control endpoint, endpoint zero.

    DeviceIoControl( ) is passed a pointer to a two-part structure as both the lpInBuffer and lpOutBuffer parameters. This two-part structure contains a SINGLE_TRANSFER structure followed by a data buffer.

    The SINGLE_TRANSFER structure contains all the parameters for the control request.

    The buffer contains the transfer data.

    pXmitBuf
      SINGLE_TRANFER
        bmRequest
        Request
        .
        .
      buff

     

    union  {
    
    struct   {
    
    UCHAR Recipient:5; //接收方: Device,Interface,Endpoint,Other
    UCHAR  Type:2;  //Type: Standard,Class,Vendor
    UCHAR Direction:1; //数据传输方向: Host2Device,Device2Host
    } bmRequest;
     UCHAR bmReq;   //请求类型
    };
    
    bmRequest.Recipient = 0; //  Device
    bmRequest.Type      = 2; //  Vendor
    bmRequest.Direction = 1; // IN command (from  Device to Host)
    
     
    int iXmitBufSize = sizeof(SINGLE_TRANSFER) + bufLen; //  The size of the two-part structure. XmitBuf is the two-part structure.
    
    UCHAR *pXmitBuf = new UCHAR[iXmitBufSize];           //  Allocate the memory 创建iXmitBufSize大小的UCHAR变量
    
    ZeroMemory(pXmitBuf, iXmitBufSize);     // 指定存储空(UCHAR)间清零
    
    PSINGLE_TRANSFER pTransfer = (PSINGLE_TRANSFER)pXmitBuf; //  The SINGLE_TRANSFER comes first 下面首先定义SINGLE_TRANSFER Structure的值
    
    pTransfer->SetupPacket.bmRequest = bmReq;    //Birmap Characteristics of request
    pTransfer->SetupPacket.bRequest = ReqCode;    //Specific request
    pTransfer->SetupPacket.wValue = Value;       
    pTransfer->SetupPacket.wIndex = Index;
    pTransfer->SetupPacket.wLength = bufLen;      //Number of bytes to transfer if there is a Data stage
    pTransfer->SetupPacket.ulTimeOut = TimeOut / 1000;
    pTransfer->Reserved = 0;
    pTransfer->ucEndpointAddress = 0x00;     //  Control pipe
    pTransfer->IsoPacketLength = 0;
    pTransfer->BufferOffset = sizeof (SINGLE_TRANSFER);
    pTransfer->BufferLength = bufLen;
    DWORD dwReturnBytes;
     
    DeviceIoControl (hDevice, IOCTL_ADAPT_SEND_EP0_CONTROL_TRANSFER,
                 pXmitBuf,  iXmitBufSize,
                 pXmitBuf,  iXmitBufSize,
                 &dwReturnBytes,  NULL);
     
    // Copy data into  buf
    UCHAR *ptr = pXmitBuf + sizeof (SINGLE_TRANSFER);
    memcpy(buf, ptr, dwReturnBytes);

     

    转载于:https://www.cnblogs.com/sunmaoduo/p/3923720.html

    展开全文
  • 检查程序是否有无限递归或循环导致崩溃。 转载于:https://www.cnblogs.com/pengde/p/11046128.html

    检查程序是否有无限递归或循环导致崩溃。

    转载于:https://www.cnblogs.com/pengde/p/11046128.html

    展开全文
  • cyusb-tools 使用 cyusbserial.dll API 访问 Cypress USB-Serial 芯片的工具
  • CYAPI.LIB文件

    2009-09-11 20:28:46
    CYPRESS的USB开发库文件,用于VC,BC开发,非常好!
  • Qt5.12之USB3.0加载CyAPI.h和CyAPI.lib过程

    千次阅读 2019-12-24 14:07:57
    工作环境:win10(64位)企业版、Qt5.12、VS2017编译器 一、安装驱动 1、按默认步骤安装usb专用驱动:FX3_SDK_Windows_v1.3.3.exe ... 切记:记住安装路径(或者自己手动选择安装位置, 我...
  • 原文:https://blog.csdn.net/wbango/article/details/17029873 最好把系统变量path也添加
  • C#编写的USB通信实例(含源码)

    热门讨论 2018-04-03 21:16:16
    本资源是使用C#和DotNetUSBLib开发的USB通信实例程序,使用VS2015+Devexpress编写,可以结合我的相关博文进行学习实验
  • CYPRESS USB芯片win10驱动

    千次阅读 2018-05-17 14:04:00
    The ZIP file attached with this knowledge base article contains the CyUSB3.inf and CyUSB3.sys files for FX3, FX2LP (CY7C68013A / CY7C68014A / CY7C68015A / CY7C68016A), and FX1 (CY7C64713) The followi...
  • opencv_QT 读取视频后,开始播放视频,取帧处理帧的时候,在转换图像格式的时候出错,求问这是为什么呀??
  • CyUSB General Driver

    2010-05-19 21:14:55
    Cypress general usb driver
  • C#与USB设备通信

    万次阅读 多人点赞 2015-11-15 11:55:20
    这个开发包中,C#有一些上位机Demo和上位机开发使用的动态链接库CyUSB.dll。注意,C++使用的库文件是CyAPI.lib文件,与C#的不同,他们只能引用自己对应后缀的库文件。可不能搞混哦。那么,C#上位机只需要CyUSB.dll就...
  • Cypress CyUSB .NET DLL Programmer's Reference
  • 假设有2个DLL, Class1和Class2. Class1引用Class2, 并调用Class2里的方法。 Code<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)&lt...
  • CYUSB3_Install = "Cypress CYUSB3.0 Driver Installation Disk" 139 VID_XXXX&PID_XXXX.DeviceDesc="Cypress USB3.0 Generic Driver" 140 VID_04B4&PID_00F0.DeviceDesc="Cypress USB BulkloopExample" 141 ...

空空如也

空空如也

1 2 3 4 5
收藏数 88
精华内容 35
关键字:

CyUSB.dll