uɐɪ*_*uɐɪ 10 windows hardware usb
这可能不被认为与编程直接相关,但我不知道还有什么要问的.我曾尝试查看各种网站,但到目前为止谷歌还没有成为我的朋友.
我无法确定是否需要为我正在开发的设备连接的各种windows/linux/mac平台编写自己的设备驱动程序,或者是否由标准驱动程序提供功能.
我的设备是USB CDC(通信设备),显示为COM:端口.它还包括一个电池充电器,将,一旦装置已经被枚举需要能够从USB连接器中得出的完整的5单元负载(500毫安)电源电流.我的问题是,如果主机中的USB驱动程序决定它无法提供全部电源电流,那么它应该无法枚举设备.
如果,作为备用,我提供第二配置集合,其仅允许所述设备来绘制从接口连接器1个单元负载将标准的驱动程序使用此配置枚举设备.
您需要为Windows编写一个.inf文件,将您的设备VID和PID与系统usbser.sys捆绑在一起.我看起来像这样(根据需要替换YourCompany,输入您的VID和PID(十六进制),并将DriverVer行更改为您想要的任何日期和版本):
; -----------------------------------------------------------------------------
; XP/2000 USB Comms Port Setup
; -----------------------------------------------------------------------------
[Version]
DriverVer=12/03/2008,1.0.0000.0000
Signature="$Windows NT$"
Class=Ports
ClassGUID={4d36e978-e325-11ce-bfc1-08002be10318}
Provider=%YourCompany%
[DestinationDirs]
DefaultDestDir=10,system32\drivers
DriverCopyFiles=12
[ControlFlags]
ExcludeFromSelect = *
[Manufacturer]
%YourCOmpany%=YourCompanySerialPort
[YourCompanySerialPort]
%YourCompanyUSBSerialPort%=YOURCOMPANYUSB,USB\VID_1234&PID_ABCD
;
; Win 2000/XP
;
[YOURCOMPANYUSB]
Include=mdmcpq.inf
CopyFiles=FakeModemCopyFileSection
[YOURCOMPANYUSB.HW]
AddReg=YOURCOMPANYUSBAddReg.HW
[YOURCOMPANYUSBAddReg.HW]
HKR,,DevLoader,0,*ntkern
HKR,,NTMPDriver,,"usbser.sys"
[YOURCOMPANYUSB.Services]
AddService=usbser, 0x00000002, FuncDrv_Service_Inst
[FuncDrv_Service_Inst]
DisplayName=%USBFilterString%
ServiceType= 1
StartType = 3
ErrorControl = 0
ServiceBinary = %12%\usbser.sys
[Strings]
YourCompany="YourCompany"
YourCompanySerialPort="Your Company USB Serial Port"
USBFilterString = "USB Serial Service"
Run Code Online (Sandbox Code Playgroud)
请注意,这仅适用于32位操作系统.虽然文件头没有这么说,但它也适用于Vista!
请注意,某些版本的usbser.sys存在重大问题,包括蓝屏,例如在传输64字节精确倍数的数据包时.如果您使用的是XP SP2或之前的版本,请安装修补程序KB943198.XP SP3和Vista都很好.
对于Mac,您只需要正确报告设备类,驱动程序扫描就会选择正确的驱动程序.(Windows忽略设备类,这就是您需要提供.inf文件的原因).
编辑:对不起,我应该更清楚.如果它不能完全填充,这将不会失败 - 我不确定是否可能.
归档时间: |
|
查看次数: |
7257 次 |
最近记录: |