mdk5-观察到一个现象:usb HID设备在成功枚举完了之后就与主机不通讯了,怎么重新开始通讯呢?

问题描述

观察到一个现象:usb HID设备在成功枚举完了之后就与主机不通讯了,怎么重新开始通讯呢?

stm32f103zet6,开发环境mdk517,用的是st官方给的hid的键盘的例程,usb能成功被枚举,而且显示有一个标准的输入设备,但是我再debug模式下起初在枚举阶段我能看到在中断函数中设置的中断点出停下来,说明主机给设备发了一些东西,但是当主机成功枚举之后,pc上显示这个设备运转正常,这个时候再在中断函数中任何地方设置断点都没有作用,也就是说这时主机就没有给设备发in包,那岂不是直接忽略了这个设备了?那这个设备的动作怎么发到主机上啊?我试过从设备管理器中禁用设备时,设备有发生中断,启用时也是,但是不管时就没数据交流,那么要实现鼠标的功能的话,鼠标动了主机根本不知道啊,怎么搞?

解决方案

虽然看不太懂那些解释,但是似乎这个USBD_HID_GetReportTrigger函数就是用来做这个的,然而要用这个函数得配置一下USBD_Config_HID_0.h
这个文件,否则就会因为参数填充错误而导致发送失败,这里最主要的参数是:Report即端口的缓冲区大小,默认为1,hid工程中一般为4,所以得手动设置为4,然后调用的时候参数中有个len参数,不能大于4否则会返回一个参数错误。
我的工程已经实现了鼠标的移动左键功能了,谢谢看过而没有回答问题的各位~

时间: 2024-09-17 03:49:58

mdk5-观察到一个现象:usb HID设备在成功枚举完了之后就与主机不通讯了,怎么重新开始通讯呢?的相关文章

C# 访问USB(HID)设备

原文:C# 访问USB(HID)设备 二话不说,直接给代码,如果您真想做这方面的东西,还是稍微研究下,没有现成的好类用,就需要自己了解其原理 //引用空间using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Ru

上位机用C#操作USB HID设备

问题描述 各位好,请教个上位机用C#操作USBHID设备的问题,网上这方面资源感觉好少,现在可以正常打开和关闭设备,只是读写一直出现问题,我第一次在windows平台上工作,希望大神们给指点指点,时间比较紧,最好是编程方便点的,或者有直接这样的操作类更好,我的联系方式,邮箱:xucong19900422@163.comQQ:940939893.如能帮助解决,分数什么都不是问题!! 解决方案 解决方案二:这种问题,你应该联系厂家要sdk和demo啊解决方案三:是啊,你这是二次开发,没有sdk拿来干

usb hid 报告字节数 变长传输

问题描述 usb hid 报告字节数 变长传输 想请教一个关于hid通信过程中报告传输数据的字节数的问题. 1.下位机规定报告字节数最大为64字节 2.通信协议是不定长的,每条命令返回值长度不同,下位机不会自动补全64字节. ** Q1.我在编写上位机过程中使用windows的 ReadFile 读取的时候,发现下位机返回数据不够64字节的时候ReadFile没有数据,只有够了64字节才会读到数据.而我想实现的是能够读取下位机返回的变长数据,因为下位机没有补全64字节,我可以怎么尝试?** 我自

linuxhid-linux 中自定义HID设备文件无法打开

问题描述 linux 中自定义HID设备文件无法打开 我这里有一款精伦的HID身份证阅读器,在linux虚拟机下 可以打开读取数据:但是到了开发板上面却找不到/dev/usb 目录 ,我通过插拔发现会在dev目录下生成一个 '1-1.2'的设备文件,但是操作时却是无法打开. 查遍资料,重新编译了内核,仍然无法打开,有人说需要创建设备文件用mknod /dev/usb/hiddev0 186 96 :我创建了,但是还是打开失败.求大神支招解决,已经困扰了一周了.孤立无援啊

android-Android UsbManager 获取不到HID设备

问题描述 Android UsbManager 获取不到HID设备 已经在AndroidManifest.xml配置了 <uses-permission android:name="android.hardware.usb.host" /> <uses-permission android:name="android.hardware.usb.accessory" /> <uses-feature android:name="

Win7系统USB视频设备黑屏如何解决?

  1.在"计算机"图标上右键,选择"管理"; 2.在打开的计算机管理界面中,点击"设备管理器--图像设备",然后在图像设备下面选择摄像头,右键选择"更新驱动程序". 3.此时会弹出一个更新驱动程序软件的窗口,选择"浏览计算机以查找驱动程序软件"; 4.选择"从计算机的设备驱动程序的列表中选择". 5.弹出选择为此硬件安装的设备驱动程序中,型号处选择"USB视频设备"

怎样从Windows域环境下禁用USB口设备

  1.打开Active Directory用户和计算机; 2.选择需要禁用USB设备的OU,并点击鼠标右键进行组策略; 3.创建一个针对USB的GPO,并点击编辑,打开组策略编辑器; 4.进入组策略编辑器,依次展开"计算机配置"."Windows设置"."安全设置"."文件系统"; 5.右键点击"添加文件",弹出"添加文件和文件夹",在"文件夹"栏输入"%

USB存储设备无法识别的原因

  当你想用闪存或移动硬盘来和电脑交换数据时,但插上USB口时你却发现系统居然无法识别出USB设备,是什么原因造成的呢,这里简单介绍一下排除USB存储设备本身故障后出现此类现象的原因. 1.前置USB线接错.当主板上的USB线和机箱上的前置USB接口对应相接时把正负接反就会发生这类故障,这也是相当危险的,因为正负接反很可能会使得USB设备烧毁. 2.USB接口电压不足.当把移动硬盘接在前置USB口上时就有可能发生系统无法识别出设备的故障.原因是移动硬盘功率比较大要求电压相对比较严格,前置接口可能

无法安全移除USB存储设备的正确解决办法汇总

  USB存储设备,即我们经常使用的:U盘或移动硬盘.有时候,我们要拔出USB存储设备的时候,会被提示:无法安全移除存储设备,而引用的文件或者文件夹都已经关闭.有一些网友的做法是直接拔出.但是,突然间断电,有可能导致USB存储设备损坏,那么正确的USB存储设备无法安全移除的解决办法是什么呢? 拔除USB存储设备 1.使用Windows自带工具 使用Windows自带工具 点击系统通知区域里的安全移除硬件图标,并点击设备名.当系统显示可安全移除硬件时,你就可以将存储设备拔下了.可如果显示的信息是设