彻底了解VC通过libusb-win32控制USB转DB25接口【推荐】

本文介绍了如何在Windows环境下,利用libusb-win32库通过VC来控制USB转DB25接口。首先,安装libusb-win32驱动并识别设备。然后,修改libusb示例代码,设置Vendor ID和Product ID,实现数据的发送。最终,通过示波器验证实验成功,周期性发送数据到DB25接口。
摘要由CSDN通过智能技术生成

工作环境(蓝色粗体字为特别注意内容)

1,系统环境:Win7 Ultimate sp1、libusb-win32 version 1.2.6.0、VC98

2、参考文献:https://www.cnblogs.com/lknlfy/p/3189949.html

手头有个老设备需要通过并口控制,无奈,笔记本电脑没有并口,只能买一个USB转并口的转接线,某宝花了28元买了一根号称支持Winxp、Win7、Win8、Win10的usb转DB25打印机线。

快递一到就迫不及待的接上电脑,驱动倒是自动成功安装,于是,打开设备管理,左看右看愣是没有看到LPT接口!通常,如果看到LPT1接口的话,在VC中可以使用如下方式打开

 hPort  = CreateFile("\\\\.\\LPT1",GENERIC_WRITE, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

	if (hPort == INVALID_HANDLE_VALUE)
	{
		printf("Cannot open LPT%d!\n", port_id);
		return 0;
	}

虽然没看到LPT接口,但是仔细检查,发现Universal Serial Bus controllers(usb控制器)下面多了一个“usb printer support”,估计这就是这根转接线了。于是点击windows开始-Devices and printers(设备和打印机)

发现一个未指定的设备:

单击任一打印机,选择Property(属性)-Ports(端口),发现一个有意思的端口“USB001”

也就是说,如果该端口上面连接着打印机,那么 新建一个打印机设备,并且指定该端口,就能够正常使用该打印机来进行打印工作。但是,回到前面的初衷,我们是要用DB25打印机端口来跟一款老设备进行通信,而不是用来打印!既然出现了“USB001”于是灵光一闪,想到咱们在VC中能不能像下面这样写呢?

hPort  = CreateFile("\\\\.\\USB001",GENERIC_WRITE, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

很遗憾,打开失败,按照我上一篇博客将USB001的打印机映射到LPT1端口,在CreateFile也是打开失败。查找资料,发现有关Windows操作USB设备的方法,典型的方法有两种:1、使用Window API来操作USB端口,2、使用第三方USB库libusb-win32来操作USB端口。这里我们选择后者,因为第一种方法要安装Windows SDK,还得装一堆东西,而我手头只有一个VC98的cl编译器(囧~~~~~),纯命令行编译。下面来看看如何使用libusb-win32来操作这个USB转DB25转接线。

Step1.当然是下载libusb-win32了,libusb-win32传送门

下载下来之后,解压,应该有以下目录

├─bin
│  ├─amd64
│  ├─ia64
│  └─x86
├─examples
├─include
└─lib
    ├─bcc
    ├─dynamic
    ├─gcc
    ├─msvc
    ├─msvc_i64
    └─msvc_x64

这里先介绍介绍几个重要的文件夹:

(1)bin 目录主要是inf-wizard.exe这个程序,这个程序是libusb的驱动程序,需要先进行安装驱动。

(2)examples目录主要是libusb-win32的一些例程

(3)include目录存放libusb-win32的头文件

(4)lib目录主要是存放已经编译好的现成的库

首先,双击bin目录下面的驱动,选择对应usb转db25对应的端口,

 记住下面这两个值,后面用到!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值