QT USB通信--方案选择

在Windows下用Qt写UI程序,该程序与下位机通过USB进行通信。Qt类库没有自带的USB类,所以采用第三方库来进行USB通信。

对于第三方库的选择,总共有如下几种:

一、如果是在Windows下,那么采用Windows 的API函数去读取USB设备。

二、使用开源库libusb,官方网站是http://www.libusb.org/,在http://sourceforge.net/projects/libusb/http://libusb.info/这上面也有详细的使用说明。从官网上下载源代码,压缩包中的INSTALL文件有安装提示。

三、libusb有针对Windows平台下一个开源库http://sourceforge.net/projects/libusb-win32/http://sourceforge.net/p/libusb-win32/wiki/Home/。这个方案有尝试过,从官网上下载压缩包libusb-win32-bin-1.2.6.0,里面有一个inf-wizard.exe可执行程序,可把指定的USB设备识别成libusb-win32的设备,我们可以直接对那个设备进行读写。但是使用这种方式如果换另外一台电脑,那么还得重新为那个设备安装libusb-win32的驱动,不太方便。

第1步:此处我选择我的鼠标设备;



第2步:配置选中设备的信息;



第3步:libusb-win32为我们刚才选中的设备创建了一个Windiow下的驱动程序,之后我们安装他。



第4步:点击Install now之后,提示驱动安装成功,之后我的鼠标就不能用了。主要是驱动被换了。我们看看安装前和安装后设备管理器的内容。多出来的一个设备我们就可以通过libusb-win32的api去读写了。如果想回去继续用鼠标,把那个驱动卸载掉就行了。





四、使用第三方库hidapi,http://www.signal11.us/oss/hidapi/https://github.com/signal11/hidapi。这个方案是最简单的,代码量少,可移植。不过,正如名字所说,这个只适合hid的USB类。刚好下位机之前已配置成hid设备,那么决定采用这种方案。


上述除第一个方案剩下的三个方案,如果在windows下使用,都需要把相应的dll文件放到相应的目录下且指定lib文件的路径,类似这样。这样在程序中对设备的操作才不会报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值