
USB
文章平均质量分 82
Phenixyf
这个作者很懒,什么都没留下…
展开
-
HID 异步访问和同步访问
使用 Windows 自带 API 枚举并完成读写的详细步骤,参考下面两篇文章:https://blog.youkuaiyun.com/phenixyf/article/details/72478933https://blog.youkuaiyun.com/phenixyf/article/details/9153195根据上面文章自己完成的 HID GUI 模板位置如下: 使用同步还是异步方式访问 HID 在下面两个地方确定: 用同步方式打开 HID 设备: 用异步方式打开 HID 设备:原创 2022-09-15 10:35:22 · 1299 阅读 · 2 评论 -
GetLastError()返回值列表
1642〗-Windows 安装服务无法安装升级修补程序,因为被升级的程序可能会丢失或是升级修补程序可能更新此程序的一个不同版本。〖3029〗-因为用户帐户数据库 (NET.ACC) 找不到或损坏,而且也没有可用的备份数据库,所以不能启动本地安全机制。〖1015〗-注册表损坏。包含注册表数据的某一文件结构损坏,或系统的文件内存映像损坏,或因为替代副本、日志缺少或损坏而无法恢复文件。〖3185〗-因为用户帐户数据库 (NET.ACC) 找不到或损坏,而且也没有可用的备份数据库,所以不能启动本地安全机制。转载 2022-09-14 17:36:09 · 1343 阅读 · 0 评论 -
Windows Overlapped I/O 应用 实例操作详解
overlapped I/O是WIN32的一项技术,你可以要求操作系统为你传送数据,并且在传送完毕时通知你。事实上,操作系统内部正是以线程来I/O完成overlapped I/O。2:调用WaitForMultipleObjects(MAX_REQUESTS, ghEvents, TRUE, INFINITE) 当任何一个用户的读操作完成时,函数停止阻塞。使用另一个线程进行I/O。如果采用 overlapped,那么ReadFile()、WriteFile()的第5个参数必须提供一个指针,转载 2022-09-14 15:57:12 · 739 阅读 · 0 评论 -
Windows Overlapped I/O 操作
详细说明:该函数检测指定的对象的当前状态,若为nonsignaled则调用者线程将处于等待状态,在此状态下消耗少量的处理器时间直到对象状态改变为signaled或超时。bWaitAll参数如果为TRUE,则只有当等待的所有内核对象为已通知状态时函数才返回,如果为FALSE,则只要一个内核对象为已通知状态,则该函数返回。第二个参数指明了需要等待的时间(毫秒),可以传递INFINITE指明要无限期等待下去,如果第二个参数为0,那么函数就测试同步对象的状态并立即返回。如果该函数失败,返回WAIT_FAILED。转载 2022-09-14 15:17:53 · 545 阅读 · 0 评论 -
Overlapped
但是,需要注意的是,一个特定的overlapped I/O完成后,Windows并不会贸然中断你的程序,然后调用你所提供的callback函数。当一个overlapped I/O完成时,系统调用该callback函数。使用文件句柄作为激发机制,有一个明显的限制:如果多个线程对同一个文件进行操作,由于只有一个相同的handle,对于每个可能进行的overlapped操作都调用GetOverlappedResult()查看操作是否完成,这将不是一个很有效率的做法——因为很多的时候并不是自己所期待的操作完成了。转载 2022-09-14 14:03:56 · 383 阅读 · 0 评论 -
【QT】监听USB热插拔事件
#ifndef WIDGET_H#define WIDGET_H #include <QtGui/QWidget> #include <windows.h>#include <QString> class Widget : public QWidget{ Q_OBJECT public: Widget(QWidget *parent = 0); ~Widget(); protected: bool winEvent(MSG *msg,..转载 2022-04-12 16:08:19 · 2232 阅读 · 1 评论 -
USB设备的插入检测
1.USB的插入检测机制:USB端口的D+和D-均用一个15k的电阻接地,当无设备接入时,均处于低电平;在设备端在D+(表示高速设备或者全速设备)或者D-(表示低速设备)接了一个1.5k的上拉电阻到+3.3v,一旦将设备接入,USB端口的D+或者D-其中一个被拉高为3v,系统识别到外部设备接入。注意:高速设备首先会被识别为全速设备,然后再通过集线器和设备二者的确认最后切换到高速模式下。在高速模式下,采用的是电流传输模式,这个时候上拉电阻需要从D+上断开。2.当设备没有枚举成功时(可以通过一...转载 2020-09-23 16:27:02 · 6007 阅读 · 0 评论 -
USB/HID 上位机开发流程及注意事项-----/*自己编写*/
1. 预定义的变量//用来保存读数据的设备句柄HANDLE hReadHandle=INVALID_HANDLE_VALUE;//用来保存写数据的设备句柄HANDLE hWriteHandle=INVALID_HANDLE_VALUE;//发送报告的缓冲区,1字节报告ID+8字节报告数据UCHAR WriteReportBuffer[130];//接收报告的原创 2017-05-18 18:28:00 · 9993 阅读 · 0 评论 -
HID读下位数据丢失问题
PCR项目中,上位机采用异步原创 2014-10-11 16:50:22 · 3895 阅读 · 0 评论 -
HID热插拔后,设备状态改变,上位机自动识别
1. 设备状态改变设别注册: 当设备插入或拔下时,windows应用程序可以感知并作出相关动作。要实现这个功能,需要在应用程序中,先申请注册接收该设备类(包括HID类)状态改变时产生的通知。 注册设备状态改变通知要使用函数RegisterDeviceNotification(),HID设备类注册的具体代码如下:void CPCRProjectDlg::Regis原创 2015-05-21 15:40:23 · 4193 阅读 · 0 评论 -
HID 读写report ID注意事项
1. 上位机向HID写数据时,每个包传输的第一个byte为写数据(OUT)report ID,上、下位机必须一致。 上位机配置位置: 下位机配置位置: 2. HID向上位机返回数据时,每个包的第一个byte也必须是读数据(IN)report ID,在下位机中,IN report ID的定义一定要和发送包的第一个by原创 2015-10-26 17:46:35 · 9167 阅读 · 0 评论 -
HID读写过程
HID或USB的上、下位机之间相互读写时,并不是直接通信的,而是经过各自的buffer.如下图所示: 上位机向下位机写数据:step1: 当点击Writ HID按键后,上位机首先将要写的数据写入PC的驱动buffer中;step2: 然后PC的驱动再将buffer中的数据写入下位机USB-SIE的buffer中,进而触发下位机的中断;step3:原创 2015-10-26 15:37:05 · 10574 阅读 · 0 评论 -
USB设备的插入检测
首先,着重强调 Device Class GUID, Device Interface Class GUID, Interface GUID是有区别的,另外奉上两篇MSDN文章: http://msdn.microsoft.com/en-us/library/windows/hardware/ff553412(v=vs.85).aspx http://msdn.microsof转载 2015-09-28 12:54:36 · 1251 阅读 · 0 评论 -
VC自动侦测USB参考
关于USB设备的自动侦测,该如何解决http://m.myexception.cn/vc-mfc/114413.html关于USB设备的自动侦测不知道为什么,U盘能侦测到插入和移除, USB 摄像头就是不行,谁给帮忙解答一下GUID CAMERA = { 0x6BDD1FC6, 0x810F, 0x11D0, 0xBE, 0xC7, 0x08, 0x00, 0x2B, 0x转载 2015-09-28 12:59:43 · 3998 阅读 · 1 评论 -
误装驱动的卸载
在开发libusb-win32的过程中,不知安装了什么,以前开发好的silicon F340 USB无法被识别为USB设备,而是被识别成了libusb-win32 devices设备。解决办法就是:在设备管理器中,卸载被lib-usb win32 devices识别的F340 USB设备的驱动。具体做法如下:连接F340 USB设备,然后打开设备管理器,找到被误识别的该设备,点击右键卸载原创 2015-07-08 17:52:40 · 6084 阅读 · 0 评论 -
winusb —— 不再为你的usb设备编写驱动
【blog.youkuaiyun.com/lanmanck】曾几何时我们找工作还发现有个驱动工程师职位,月薪也不低,没接触过的人代码压根看不懂。今天可好了,如果不太追求差异化,不用驱动也能让系统与USB设备通信了,Linux就不说了,libusb很好用,现在说下windows的。Winusb是从XP-SP2起微软提供的一个类似libusb与usb设备通信的中间件,通过它我们就不需要再费奏折的研究和转载 2015-07-03 17:53:22 · 4762 阅读 · 0 评论 -
USB学习笔记连载(二十一):CY7C68013A进行数据传输(一)
官方手册中给出了bulkloop参考例程,此例程是PC从端口2发送出数据,然后从端口6接收到数据,那么根据这个思想,可以进行修改,使得PC机接收到的数据不是从EP2发送过来的,而是从外部逻辑,比如FPGA处送来的数据。那么如何进行修改呢?//=============================================void TD_Init(void)转载 2017-09-08 09:48:11 · 5870 阅读 · 0 评论 -
HID Firmware修改 (HIDtoUARTExample)之二
1. 上位机向HID写数据时,每个包传输的第一个byte为写数据(OUT)report ID,上、下位机必须一致。上位机配置位置:下位机配置位置:2. HID向上位机返回数据时,每个包的第一个byte也必须是读数据(IN)report ID, 在下位机中,IN report ID的定义一定要和发送包的第一个byte相一致,否则读取原创 2017-10-10 15:23:04 · 1191 阅读 · 0 评论 -
USB CDC从理论到实践
本文摘自ST官网的“USB CDC类入门培训”。整理的内容是我能够看得懂的,认为比较实用的,记录下来,以便以后查阅,同时也把原文档中的笔误给更正了一下。若要看更详细的可以去ST技术文档中查看,链接为:http://bbs.21ic.com/forum.php?mod=viewthread&tid=726814&page=1&extra=#pid42250641 US...转载 2019-04-12 16:28:51 · 2833 阅读 · 0 评论 -
SLAB HID UI develop follow ----- /*自己编写*/
参考厂商源例程位置:D:\Yifei\Project_Reference\F340_Inforamtion\F340_HID1. 在项目文件夹内添加下面三个文件2. 将.lib库添加到工程在项目头文件中#include “HIDDevice.h”3. 添加HID相关宏定义4. 至此,就可以连接HID的,用下面两个函数 GetNumHidDevices(VID_HID, PID_HID);...原创 2018-05-16 11:05:31 · 511 阅读 · 0 评论 -
Cypress Suite USB 3.4.7 快速入门——UI API的使用
1、CyAPI环境搭建,软件环境:win7 32位,VS2013+Qt5.3+Cypress Suite USB 3.4.7 硬件:EZ-USB FX2错误1:当将CyAPI.h包含至项目,编译时候出错如下:1>d:\vs2013workspace\testusb\testusb\CyAPI.h(15): eerror C2146: 语法错误: 缺少“;”(在标识转载 2018-01-23 19:47:19 · 6483 阅读 · 2 评论 -
FX3学习笔记6-gpio
1、实验环境硬件平台:CYUSB3KIT-003 EZ-USB® FX3™ SuperSpeed Explorer Kitsdk版本:EZ-USB FX3 SDK1.3 / SuperSpeed Explorer Kit 1.0实验例程:cyfxuvc_an75779(cypress官网下载demo)2、实验目的使用CYUSB3KIT-003的gpio_50转载 2018-01-23 19:02:06 · 1301 阅读 · 0 评论 -
Cy3014学习记录 一 -- 汇总、错误记录
开发包官网下载地址:http://www.cypress.com/documentation/software-and-drivers/ez-usb-fx3-software-development-kitun:p@163 pd:123qwe要下载的文件:SDK安装程序: EZ-USB FX3 SDK v1.3.3 for WindowsFirmware示例:cy_fx3_f原创 2018-01-17 17:38:47 · 3720 阅读 · 0 评论 -
Cy3014学习记录 二--开发软件使用汇总
1. Firmware项目,通过Eclipse打开 详细使用参考:EZ-USB Suite User Guide P62. Firmware工程如何设置成Debug或Realse模式 右键单击工程->Properties -> C++ build ->Manage Configuration 选择一个模式后,要在Manag原创 2018-01-22 15:54:05 · 1362 阅读 · 0 评论 -
FX3学习笔记2-cs-make[1]: [post-build] Error 2 (ignored)
1、实验环境硬件平台:CYUSB3KIT-003 EZ-USB® FX3™ SuperSpeed Explorer Kitdk版本:EZ-USB FX3 SDK1.3 / SuperSpeed Explorer Kit 1.0实验例程:cyfxuvc_an75779(cypress官网下载demo)2、错误说明官网下载关于摄像头sensor的uvc传输d转载 2018-01-22 15:15:31 · 1866 阅读 · 0 评论 -
HID Firmware修改 (HIDtoUARTExample)之一
1. 描述符的修改: 1.1 配置描述符的修改: 在配置描述符下的HID描述符中修改HID report描述符的字节大小。修改值改成自己编写的HID report描述符的字节数。 1.2 在配置描述符下的端点描述符中指定使用的端点、类型(输入、输出)及端点的数据长度。 1.3 在HID repor原创 2015-10-15 19:36:59 · 2623 阅读 · 0 评论 -
LibUSB-Win32程序介绍
LibUSB-Win32是一个用于Windows操作系统(Win98SE、WinME、Win2k和WinXP)上的通用USB设备驱动程序。该驱动程序允许使用者在不写任何一行核心驱动程序代码的情况下,可以访问Windows系统上的任意一个USB设备。该驱动程序具有以下特点:l 能够与任意一个已安装的USB设备进行通信l 可被用作自己开发的USB设备的驱转载 2015-07-08 15:07:53 · 4250 阅读 · 0 评论 -
USB描述符和枚举总结 --自己总结
1. 描述符之间的关系:设备描述符(一个设备只有一个):里面决定设备有多少种配置。 ----实际地址配置描述符(每种配置一个配置描述符): 定义配置里有多少接口。 ----抽象概念接口描述符(每个接口有一个接口描述符):定义该接口有多少端点。 -原创 2015-04-23 14:33:05 · 1535 阅读 · 0 评论 -
Windows主机端与自定义USB HID设备通信详解
http://blog.youkuaiyun.com/kevinyujm/article/details/4264506 Windows主机端与自定义USB HID设备通信详解 说明: - 以下结论都是基于 Windows XP 系统所得出的,不保证在其他系统的适用性。 - 在此讨论的是 HID 自定义设备,对于标准设备,譬如 USB转载 2013-06-22 23:30:52 · 1396 阅读 · 0 评论 -
结合设备安装类GUID和设备接口类GUID获取设备VIDPID
http://blog.youkuaiyun.com/jhqin/article/details/6766311 前言: VID和PID常被用于厂家的软件加密,只有在系统中检测到某VID和PID的设备时,软件才能运行。因此获取某一类型设备或者全部设备的VID和PID集合至关重要。获取设备VID和PID的一般流程是通过设备接口类GUID创建设备信息集,然后从设备接口详细信息中获取设备路径,再调用转载 2013-06-21 21:12:50 · 1998 阅读 · 0 评论 -
windows 检测串口概念 参考
VC实现自动监测光驱状态的改变 Windows系统通过GDI(图形设备接口)将系统的硬件和用户可以操作的编程接口相分离,以保证系统的稳定型和安全性。当某一个设备的硬件配置发生变化时,Windows发送广播消息WM_DEVICECHANGE给相关的应用和设备驱动程序,此时在应用程序中可以截获该消息并分析其中的消息参数,先分辨当前的消息内容,然后调用不同的事件处理程序。本文中主要考虑的是光驱转载 2013-06-17 23:22:43 · 1882 阅读 · 0 评论 -
使用dbt.h注意事项
在程序开头 #include 后,使用其中定义的常量, 编译时仍报错说未声明的常量。原因是windows版本的问题,必须把版本定义为win2000及以上。定义的办法:1.先在程序中 #include 2.打开stdafx.h文件,在如下位置定义windows版本: 重点是 #define WINVER 0X0500 参考博客:http://blog.csdn.n原创 2013-06-17 23:17:27 · 2454 阅读 · 0 评论 -
USB开发基础--USB命令(请求)和USB描述符
一、USB命令 在USB规范里,对命令一词提供的单词为“Request”,但这里为了更好的理解主机与设备之间的主从关系,将它定义成“命令”。 所有的USB设备都要求对主机发给自己的控制命令作出响应,USB规范定义了11个标准命令,它们分别是:Clear_Feature、Get_Configuration、Get_Descriptor、Get_Interface、Get_Status、S转载 2012-05-18 15:04:14 · 694 阅读 · 0 评论 -
USB HID 设备类协议入门
一、应用场合 USB HID类是比较大的一个类,HID类设备属于人机交互操作的设备。用于控制计算机操作的一些方面,如USB鼠标,USB键盘,USB游戏操纵杆,USB触摸板,USB轨迹球、电话拨号设备、VCR遥控等等设备。另外,使用HID设备的一个好处就是,操作系统自带了HID类的驱动程序,而用户无需去开发很麻烦的驱动程序,只要直接使用API调用即可完成通信。所以很多简单的USB设备,喜欢枚举转载 2012-05-18 15:00:54 · 1399 阅读 · 0 评论 -
USB数据传输设计应用
转载 2012-05-18 11:08:54 · 706 阅读 · 0 评论 -
USB数据传输设计与应用(二)
转载 2012-05-18 13:51:03 · 561 阅读 · 0 评论 -
基于HID类的USB人机接口设计
摘要 USB设备及其驱动程序的复杂性给开发人员带来了很大的开发难度。本文给出一种采用C8051F120微控制器和PDIUSBD12USB控制器结合的方式实现人机接口设备(Human Interface Devices)的方法,以及如何编写应用程序来对它进行访问。此设备无需编写USB设备驱动程序,Windows系统能够自动识别。 关键词 HID 人机接口设备 USB 描述符 中断传输转载 2012-05-18 10:09:42 · 1070 阅读 · 0 评论 -
HID的固件要求
虽然本书稍后的应用程序是针对VB程序来设计的,但对于要与HID设备通信的主机驱动程序来说,设备的固件程序代码是必须符合某 些要求的。也即是,设备的描述符必须辨识设各包含了HID接口。在固件程序代码中,除了预设的控制管线外,还须支持中断IN端点 。此外,固仵也必须包含报告描述符,以用来定义所要传送与接收数据的格式。 对于设备而言,为了送出数据,固件程序代码必须支持Get ̄Report控制传转载 2012-05-18 10:47:55 · 1023 阅读 · 0 评论 -
USB/HID设备报告描述符详解(2)
标签:用途卷标只是报告描述符诸多标签的一个。表1列出所有的卷标,利用这些卷标取可以清楚完整的描述符操作的用途。报告描述符的语法不同于USB标准描述符,它是以项目(items)方式排列而成,无一定的长度;项目有一个前辍(prefix),然后跟着一个括号,内为该项目的数据:item = prefix(data)。项目分成三种类别:主项目,全局项目,区域项目。主项目中的input,ouput转载 2012-05-17 17:23:35 · 1176 阅读 · 0 评论 -
HID描述符
一、HID接口: Interface Descriptor 3/0 HID, 2 EndpointsOffsetFieldSizeValueDescription0bLength109h1bDescriptorType104hInterface2bInterfaceNumber1转载 2012-05-17 17:25:42 · 2014 阅读 · 0 评论