| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 嵌入式 -> STM32F103 USB customhid+msc复合 (键鼠+U盘)三个接口,EP1键盘,EP2鼠标 EP3 MSC鼠标同时支持相对模式和绝对模式U盘支持FAT16文件系统 -> 正文阅读 |
|
|
[嵌入式]STM32F103 USB customhid+msc复合 (键鼠+U盘)三个接口,EP1键盘,EP2鼠标 EP3 MSC鼠标同时支持相对模式和绝对模式U盘支持FAT16文件系统 |
|
本文目的:将STM32F103C8T6的CustomHID和MSC USB设备进行复合,EP0用于枚举 ,EP1用于键盘设备,EP2用于鼠标设备(支持绝对模式和相对模式),EP3用于MSC设备(配有官方demo版本和FAT16版本(默认)),以上全部为双端口。 正常情况下,键鼠设备可以共用一个接口,利用报告ID作为前缀,发送不同的report到主机上。但是这种情况下,报告描述符是写在同一个数组内的,当遇到某些主机(如IBM的AIX7系统)枚举阶段是boot启动模式时,并不会启动报告描述符的请求,那么键鼠均不能用,因此键鼠需要分配不同的接口(interface)。 本文虽然以CUSTOMHID和MSC为复合对象,但是也可为其他复合设备,其他型号的单片机提供参考,如F1 F4 F0 等单片机的HID+MSC,CDC+MSC,HID+CDC等,双复合,甚至是三复合均可。 本文某些内容不会写得太详细,仅为一些需要修改的东西,所涉及的内容某些作者也不是很理解。要求读者有一定的USB device的相关知识[1],本文方可有参考意义。
此处不需要IDA描述符,有关该描述符的定义参考该网站[6]。
每个EP(EP0、EP1 EP2 PE3)都要有一个缓存区,需要配置每个EP的IN和OUT端点的缓存地址,该函数在usbd_conf.c函数里面。
注意这里的端点0的初始值是0x18,但是我参考了这个网站[7][8][9]的相关配置,故设置成EP0设置成0x40? 而端点1属于键盘的接口,数据量一般不大,这里只设置了16个字节(0xd0-0xc0),其他的端口按规矩设置0x40,也就是64个字节,这里中断说明一下,PMA地址的最大值不能超过0x1C0,否则枚举不成功。
每个设备需要占据不同的内存空间,而默认生成的工程是以你母版工程的默认设备的地址如,如图所示,为USBD_mallc,
故要将相关函数及宏定义修改成以下的样子。
正确的结果是识别出如下的设备,弹出一个U盘,鼠标不断往下移动,并且不断输出一个a(英文输入法下)。
有关U盘文件系统参考[10]。
? ? ? ? ? ? 工程下载链接:? ?? ?F103C8T6_USB_CUSTOMHID+MSC? ? ? |
|
|
| 嵌入式 最新文章 |
| 基于高精度单片机开发红外测温仪方案 |
| 89C51单片机与DAC0832 |
| 基于51单片机宠物自动投料喂食器控制系统仿 |
| 《痞子衡嵌入式半月刊》 第 68 期 |
| 多思计组实验实验七 简单模型机实验 |
| CSC7720 |
| 启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
| STM32初探 |
| STM32 总结 |
| 【STM32】CubeMX例程四---定时器中断(附工 |
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年12日历 | -2025/12/1 3:17:47- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |