2019-04-30 使用WINUSB来为TMS320VC5509A 改个64位驱动顺便与之交换数据

        以前用DriverStudio 3.2  写了个32位的驱动,用以驱动5509A的USB口,并与VC6写的应用程序交互读回数据。时过境迁,64位系统普及的今天,微软非不让人消停。不得已的情况下发现了WINUSB这个东西,于是开始尝试让老树发新芽了。

一,搭建系统

WINDOWS 10 +Visual Studio 2017 Community+Windows 10 SDK (10.0.17763.0)+Windows 10 版本 1809 的 WDK

没什么好说的。

二,新建一个inf 工程


三,修改PID,VID

8181和0101是在5509A里写死 的,根据设备不同更改。不记得的话设备管理器里可以查到。

填入设备的DeviceInterfaceGUIDs,以后将会用createfile以此ID获得设备的操作句柄

HKR,,DeviceInterfaceGUIDs,0x10000,"{36C75AEF-45FC-49db-8637-XXXXXXXX}"

花括号里的内容需要自己生成。工具为 guidgen.exe

修改String段里的内容。不改也没关系。

四,生成解决方案

遇到以上错误说明你失眠了,起床太早遇到跨时区问题。修改时间戳位本地时间或者把系统时间调到8点以后

理论上

五,安装设备

理论上x64目录生成的inf 和cat 文件已经能在win10,64位上给你的5509A把未知设备打上驱动了。

但是微软怎么能这么好心,去百度一下WIN10永久关闭数字签名,然后才可以 用你的驱动。

六,如果是Windows7 64 位需要修改INF

增加类注册的字段

; ========== Class definition ===========

[ClassInstall32]

AddReg = ClassInstall_AddReg

[ClassInstall_AddReg]

HKR,,,,%ClassName%

HKR,,NoInstallClass,,1

HKR,,IconPath,%REG_MULTI_SZ%,"%systemroot%\system32\setupapi.dll,-20"

HKR,,LowerLogoVersion,,5.2

添加完以后重新生成解决方案,新的inf,cat 文件可以在win7 64位上使用了。

六,建立应用程序来试着操作5509A

插入一下,CMD界面时需要开启符号服务器调试

七,修改 GUID_DEVINTERFACE_XXXXX

在这里要区别用户GUID 和类GUID,需用到在前面定义的 36C75AEF-45FC-49db-8637-XXXXXXXX了。

HKR,,DeviceInterfaceGUIDs,0x10000,"{36C75AEF-45FC-49db-8637-XXXXXXXX}"

将他改成示例中的格式,最后几位要拆成两两对齐。

八,生成解决方案,然后调试的时候选择本地windows 调试器,接上你的设备,运行一下后台就获取了VID,PID

大功告成了。

你可能感兴趣的:(2019-04-30 使用WINUSB来为TMS320VC5509A 改个64位驱动顺便与之交换数据)