USB-OTG应用分析
来源:互联网 发布:什么相机软件最好 编辑:程序博客网 时间:2024/06/05 03:17
这部分我将详细介绍stm32 USB-OTG库的实现过程。通过阅读自带的库可以学习他不错的程序框架。
想要更深入了解USB的插入检查,枚举过程,描述符的详细信息可以跳转至我的这一专题:
USB协议略解
言归正传回到我们的USB-OTG中来:
- USB OTG含义
- USB OTG作用
- USB OTG库函数分析
1. USB OTG含义
OTG是On The Go的缩写,正在进行中的意思,是近年发展起来的技术,2001年12月18日由USB Implementers Forum公布,主要应用于各种不同的设备或移动设备间的联接,进行数据交换。特别是PDA、移动电话、消费类设备。改变如数码照相机、摄像机、打印机等设备间多种不同制式连接器,多达7种制式的存储卡间数据交换的不便。
2. USB OTG作用
OTG的设备,例如数码相机直接连接到打印机上,通过OTG技术,连接两台设备间的USB口,将拍出的相片立即打印出来;也可以将数码照相机中的数据,通过OTG发送到USB接口的移动硬盘上,野外操作就没有必要携带价格昂贵的存储卡,或者背一个便携电脑。我们知道USB设备分为HOST(主设备)和SLAVE(从设备),只有当一台HOST与一台SLAVE连接时才能实现数据的传输,而OTG设备既能充当HOST,亦能充当SLAVE,也即DRD(Dual-role-devices),所以这样就可以脱离PC(host设备)来在不同的移动设备上通过OTG技术来传输数据了。USB OTG设备就是指具备独立数据拷贝功能的移动硬盘产品。
3. USB-OTG 库分析
第一步就是关键的初始化部分:
#ifdef USBAPP // Init Host Library USBH_Init(&USB_OTG_Core, #ifdef USE_USB_OTG_FS USB_OTG_FS_CORE_ID,#else USB_OTG_HS_CORE_ID,#endif &USB_Host, &USBH_MSC_cb, &USR_cb);#endif
这里的结构体内容还需我们填充:
USBH_USR_MSC_Application就是我们的U盘读写的地方,稍后细讲。
我们回头细看下init函数
发现本质就是结构体部分的向上注册:
接下来我们分析下USB_MSC_cb结构体:
到这里初始化完成了,剩下我们看下USB是如何调度里面那些注册就结构体里的函数的:
当HOST_CLASS状态时:
当 USBH_MSC_DEFAULT_APPLI_STATE
就调用了我们的app函数。
- USB-OTG应用分析
- USB host(OTG)应用
- USB OTG驱动分析
- USB OTG驱动分析(一)
- USB OTG驱动分析(一)
- USB OTG驱动分析(一)
- USB OTG驱动分析(一)
- USB OTG驱动分析(一)
- USB OTG驱动分析(一)
- USB OTG驱动分析(一)
- USB-OTG
- usb otg
- USB otg
- USB OTG
- USB OTG
- USB OTG
- USB OTG
- usb otg
- codeforces 891-A. Pride Codeforces Round #446 (Div. 2) C. Pride
- Mac 系统 使用SourceTree拉取Gitlab项目配置
- day 25 shell相关命令及特殊符
- Mysql数据库的api介绍
- 递归解决汉诺塔问题
- USB-OTG应用分析
- CentOS 7忘记root密码解决办法
- 简单PageRank的理解
- 11.16CNN跑起来+opencv
- shell特殊字符,shell的几个命令
- 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
- 解决 ifconfig command not found
- SHA-2 安全散列算法2 算法详解
- 安迪-比尔定律