USB复合设备调试 STM32
- 空间
STM32 USB复合设备调试过程,
复合设备一般要用到IAD(接口关联描述符),但是我在网上下载的几个例程都没有用到IAD,最后发现如
果USB复合设备只用到两个接口,即复合的两个功能(MSC & HID)各占用一个接口,这种情况是不需要用
IAD的。
我是这样做的:直接在ST提供的MSC例程上修改,在MSC的配置描述符后面添加一个interface(HID接口),
接口描述符不熟悉,直接在网上拷贝一个成功的例程,这一步的问题不大,HID设备还需要一个报告描述符
,这个比较复杂,但是为了简化应用,也直接拷贝一个成熟的报告描述符,这里面可以设置的东西很多,
但是我们用的简单,针对数据输入与数据输出各建立一个报告。报告长度都设置为64字节。还以为ST没有
提供复合设备的例程,其实ST公司在老版本的USB LIB 4.0版本里是有提供MSC+HID复合设备的,我知道这
个信息的时候,已经在ST的 USB OTG新版本库中移植成功了MSC&HID复合设备,composite device
其它我应该会提前半天调试成功的,有一个VID耽误了我好长时间,VID PID是USB厂家在USB ORG组织注册
的唯一ID号,VID是厂家ID号,PID是产品ID号,USB主机系统通过PID还确认此设备是什么类型的USB设备,
我移植的MSC例程是0x5710,我做复合设备的时候也没清楚还有这么一说,就没有改这个PID,所以我的HID
设备一直没有识别出来,尽管我在配置描述符中也增加了HID的接口,一个偶然的机会我发现我的VID,PID
与我移植的例程不一样,我改成例程的0X0606 0X5606之后马上就识别成功了,这时我才意识到VID PID的
重要性,马上上网查VID PID的作用,原来如此!! 原来WINDOWS操作系统也懒省事,如果发现VID PID已
经有注册了,直接按注册的产品类型来加载驱动,如果没有注册才去按“配置描述符”加载驱动,我把VID
PID都修改为0 0,果然WINDOWS也能识别出我的复合设备composite device
USB复合设备调试 STM32相关推荐
- [STM32F1]基于STM32 HAL库实现鼠标键盘摇杆的USB复合设备
序: 其实这样一个设备我们在ch32v103上实现过,但移植到STM32 HAL库上面,还是发现很多问题的,现在就移植过程给大家分享一下在基于STM32 HAL库实现鼠标键盘摇杆的USB复合设备的实现 ...
- STM32 USB复合设备,USB键盘+自定义HID设备
上面是我的微信和QQ群,欢迎新朋友的加入. 最近研究USB复合设备 主要是把键盘和电脑音量控制两个东西给合并成一个设备 首先要知道的一点的是,不论是键盘.鼠标.或者这个标准的HID用户控制设备,本质都 ...
- STM32 USB复合设备(VCP虚拟串口+HID键盘)详解
USB复合设备 介绍 USB复合设备与组合设备区别 USB描述符修改 修改CustomHID_Reset 修改CustomHID_Data_Setup 介绍 本次使用的是Keil 5+STM32F10 ...
- STM32F207 USB复合设备
STM32F207 USB复合设备 最近一个项目需要用F207的USB做一个复合设备,目标是将MSC和VCP设备复合,MSC设备使用的是spiflash. 由于以前对usb的开发仅限于单一设备,所以这 ...
- 基于 Ubuntu 18.04 Jlink + Vim + Cmake + Makefile 调试 STM32
Ubuntu 18.04 Jlink + Vim + Cmake + Makefile 调试 STM32 作者:解琛 时间:2020 年 8 月 3 日 Ubuntu 18.04 Jlink + Vi ...
- linux usb组合设备,USB复合设备的实现
USB复合设备一般用Interface Association Descriptor(IAD)实现,就是在要合并的接口前加上IAD描述符. IAD描述符: typedef struct _USBInt ...
- 安卓设备通过USB串口与STM32单片机通讯之二
安卓设备通过USB串口与STM32单片机通讯之二 本博文系JGB联合商务组的原创作品,引用请标明出处. 本博文接续上一篇的末尾章节. (二) APP的JAVA代码部分(使用Android Studio ...
- (转)jLink使用ITM机制实现调试stm32单片机
----------------------------------------------------------------------------------------------- 作者:p ...
- semihost/ITM机制浅析以及使用JLINK通过ITM调试stm32单片机
使用ITM机制实现调试stm32单片机,实现printf与scanf. ITM简介 ITM机制是一种调试机制,是新一代调试方式,在这之前,有一种比较出名的调试方式,称为半主机(semihosting) ...
最新文章
- 华为充电器接口叫什么_插座USB接口跟手机充电器有什么不同_电工百科
- Daily Scrum 9.28
- android contacts电话查询头像,android透过查询电话号码获取联系人头像
- 使用JDK自带的工具jstack找出造成运行程序死锁的原因
- 机器学习偏差方差_机器学习101 —偏差方差难题
- JavaScript实现四则运算
- Java 邮箱判断 正则表达式
- 使用JAVA如何对图片进行格式检查以及安全检查处理
- 雷军:明年2千元以上支持5G的手机,至少发布10款
- 拓端tecdat:Python金融时间序列模型ARIMA 和GARCH 在股票市场预测应用
- MVC学习笔记三:WebGrid控件的简单使用
- 质量与效率并重,测试左移助力块存储技术研发
- 如何在pe里加载阵列卡驱动_PE添加RAID驱动的方法
- Windows 10的“稳定”于2019年4月更新将在某些游戏中导致BSOD
- 记录编译Hi3559A时遇到的一些错误和解决方法
- Linux 基础之基础网络ss命令
- 【支付架构】支付营销 - 微信会员有礼
- 什么是美国能源之星计划?
- test1asfd 按时收费的水电费阿萨德阿斯蒂芬啊
- 线下交易如何避免微信和支付宝交易风控
热门文章
- 腾讯云部署Flask应用
- Java基于Redis实现“附近的人”(含源码下载)
- 爱在深秋-稻城亚丁旅游途中的风花雪月
- git rebase和git merge使用方法详解
- 遗传算法之扇贝的进化(python代码实现)
- 关于百度地图设置显示的比例尺大小
- android 小白点代码,Android实现小圆点显示未读功能
- 小白踩坑记-Redis的安装与使用
- 热修复(一)原理与实现详解
- NetBackup 8.2 LinuxR 服务器安装及使用 ssh 方法将客户端软件从 UNIX 主服务器安装到 UNIX 客户端(持续更新)