|
用STM32开发自定义USB设备时就需要安装driver, 一般会选择libusb.
我之前用win7 32bit/64bit都没问题, 最近想将driver装到win8上看看结果发现无法安装.
后来在网上找到了一个开源的zadig,可以用这个软件将liusb安装上去.
zadig其实就是一个打包软件,可以通过它打包驱动,然后自动解压,签名,再安装.
下面介绍一些使用经验.
首先到官方网站上下载 编译好的exe 和source code.
https://github.com/pbatard/libwdi/wiki
打开编译好的zadig.exe 用管理员权限打开,界面如下
点options 选择 lsit all devices, 默认zadig只列出没有安装驱动的设备.
在下拉菜单找到要装驱动的设备设备, 箭头右边有个选择驱动类型的地方,选libusb
然后就是一个大复合按钮,按钮右边有个下箭头可以选择行为. 如果选择extract files,zadig就会将驱动文件解压到一个usb_driver目录.
点options菜单选择Advanced Mode,可以看到zadig的log输出.
点Install Driver就可以安装驱动了.
这个软件还提供源代码,下载后可以自己修改.一些修改源代码的注意事项:
1. 最好用VS2012修改,如果是用VS2010打开会提示平台工具集错误,要在project属性->配置属性->常规->平台工具集里修改为VS2010的 V100
2. 首先要修改MSVC目录下的config.h头文件
下面这2段是WinUSB和libusbK用到的,将这些代码注释掉就不会将这2个驱动编译进去,可以减小zadig的体积
#ifndef DDK_DIR
//#define DDK_DIR "C:/Program Files (x86)/Windows Kits/8.1"
#endif
#ifndef LIBUSBK_DIR
//#define LIBUSBK_DIR "D:/libusbK/bin"
#endif
下面这段代码是libusb使用的, 要修改其目录为正确的libusb driver所在目录,主要用于zadig将driver打包进exe
#ifndef LIBUSB0_DIR
#define LIBUSB0_DIR "c:/libusb-win32"
#endif
3. Installer_x86和installer_x64要修改C/C++下的运行库为多线程/MT, 要不然在一些win7/8 机器上会提示缺少dll
也可以自己修改其他部分来添加自己的一些需求.
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|