访问Hid设备,并进行读写操作

访问Hid设备,并进行读写操作

目前这个代码可以读取到设备,但是貌似对设备创建读写的时候回发生报错,希望知道如何处理的读者能告知。

#include <stdio.h>
#include <wchar.h>
#include <string.h>
#include <stdlib.h>
#include "hidapi.h"

// Headers needed for sleeping.
#ifdef _WIN32
	#include <windows.h>
#else
	#include <unistd.h>
#endif
int get_error();
int main(int argc, char* argv[]){
   
	 myUsbDeviceOpen(&handle, &hReader, &hWriter, 0x0461, 0x010);
	 get_error();
	 for (size_t i = 0; i < 100; i++)
	 {
   
		 myUsbDeviceRead(handle, buf, 10);
		 if (get_error() != 0)
			 break;
		 for (size_t j = 0; j < 10; j++)
		 {
   
			 printf("read 0x%x\t", buf[j]);
		 }
		 printf("\n");
	 }
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Windows操作系统中,如果不想使用HID驱动进行设备读写操作,可以通过以下几种方式实现: 1. 使用串口通信:通过串口连接设备,可以使用标准的通信协议(如UART)进行数据的发送和接收。通过打开串口,设置波特率、数据位、停止位和校验位等参数,并使用读取和写入函数可以实现设备读写操作。 2. 使用USB通信:如果设备支持USB接口,可以使用基于USB的通信协议进行数据的传输。通过使用Windows提供的USB相关API,可以枚举设备、打开端点、发送和接收数据等操作来实现设备的读写。 3. 使用网络通信:如果设备支持网络接口,可以通过TCP/IP或UDP等协议进行数据的传输。通过创建套接字,建立与设备的连接,并使用读取和写入函数可以实现设备读写操作。 需要注意的是,如果不使用HID驱动进行读写操作,就需要自行实现设备的通信协议和相关接口,确保与设备的通信正常。此外,使用以上方法进行设备读写操作,可能需要编写一些额外的代码来处理通信协议、数据解析和错误处理等问题。 ### 回答2: Windows提供了不通过HID驱动进行读写的方法,可以通过使用WinUSB驱动或者基于USB的API函数来实现。下面是具体的操作步骤: 1. 准备环境:首先,需要确保设备已连接到计算机并且驱动程序已正确安装。 2. 获取设备的Vendor ID和Product ID:这些ID用于唯一标识设备。可以通过设备管理器中的设备属性来找到这些信息。 3. 安装WinUSB驱动:在设备管理器中找到设备,并选择更新驱动程序。选择"浏览计算机以查找驱动程序",然后选择"从计算机上的已安装驱动程序列表中选择",选择"显示所有设备",然后选择"已经兼容的设备",最后选择WinUSB驱动程序进行安装。 4. 使用WinUSB API进行读写:安装完成后,可以使用WinUSB API函数来进行设备读写操作。可以使用CreateFile函数打开设备,使用ReadFile函数读取设备数据,使用WriteFile函数写入数据,最后使用CloseHandle函数关闭设备句柄。 5. 使用基于USB的API函数进行读写:Windows还提供了一些基于USB的API函数,如SetupDiGetClassDevs、HidD_GetInputReport等,可以使用这些函数来实现设备读写操作。具体的使用方法可以参考Windows官方文档。 总结起来,使用WinUSB驱动或者基于USB的API函数可以绕过HID驱动进行设备读写操作。通过正确安装驱动程序和使用相应的API函数,可以实现对设备的控制和数据读写。 ### 回答3: Windows操作系统提供了多种方式来读写设备,其中HID驱动是一种常用的方式。如果想要不通过HID驱动进行读写,可以考虑以下方法: 1. 使用串口通信:可以通过串口来与外部设备进行通信。通过USB转串口适配器连接电脑和设备,使用串口通信协议进行数据传输。在Windows系统中,可以使用串口编程接口来实现数据读写。 2. 使用USB通信:除了HID驱动,USB设备还可以使用其他通信协议,如CDC(Communications Device Class)或者自定义的通信协议。通过使用这些通信协议,可以直接与设备进行数据通信,而不依赖于HID驱动。 3. 使用网络通信:可以通过网络连接设备,使用网络协议进行数据通信。例如,可以使用TCP/IP协议通过网络连接设备,并通过网络套接字进行数据读写操作。这种方式可以将设备连接到局域网或互联网上,实现远程访问和控制。 4. 使用其他驱动程序:除了HID驱动之外,还有其他类型的驱动程序可以用于设备读写,如USB驱动、串口驱动、PCI设备驱动等。可以根据设备的类型和接口选择合适的驱动程序来实现数据读写。 需要注意的是,不同的设备种类和接口可能需要不同的读写方式和相应的驱动程序。具体的实现方法需要根据设备的特性和规格进行选择和开发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值