完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本篇 LAT 从控制传输的角度解析了运行在“USB FS IP”这款 USB 模块上的全速 USB 设备库的结构和用法。 背景 : 不同的 B USB 包 模块和其对应软件包 STM32 MCU 根据系列不同,所集成的 USB IP 有所不同。本文是针对“USB FS IP”这个 USB 模块在其编 号为 STSW-STM32121 的全速 USB 设备库的一个介绍。 USB FS IP 1. 集成于 STM32F1(除 F105/107)、STM32L1、STM32F3 2. 只支持全速(FS)下的 USB 设备角色 3. 软件包:STSW-STM32121 (v4.0.0) USB 设备库结构分析 中断处理响应所有的 USB 事件,如下图所示 。 通过 控制传输举 处理标准枚举+类相关枚举 控制传输由三个 stage 组成,如下图所示: 在控制传输的( 第一阶段(Setup stage) ) 完成后,分析 Setup 数据包 8 字节命令,提供用户回调函数处理和应用所使用的类相关的控制命令 在控制传输的第 二( 阶段(IN 方向的 Data stage) ),处理第一阶段准备好(确定了数据长度和数据起始地址)的待发送的数据; 或者 ( 在控制传输的最后阶段(IN 方向的 Status stage) ) 完成后,提供用户接口做应用相关任务 在控制传输的第二阶段(OUT 方向的 Data stage),接收数据;或者 在控制传输的最后阶段(OUT 方向的 Status stage)完成后,提供用户接口做应用相关任务 结合 真实 枚举过程子 的传输来看几个实际的例子 举例 1: MSC 类的 Get_Max_Lun() 触发 CTR 中断 Setup0_Proecess –>MSC_Data_setup --> DataStageIn 即UserToPMABufferCopy 触发 CTR 中断 In0_Process --> DataStageIn --> 数据已经发完 CS = WAIT_STATUS_OUT 触发 CTR 中断 Out0_Process -->XXX_Status_Out,这里是空函数 举例 2: VCP 类的 Set_LineCoding() Setup transaction(命令) 触发 CTR 中断 Setup0_Proecess –>VCP_Data_setup --> CS = OUT_DATA Out transaction (设置串口数据帧格式) 触发 CTR 中断 Out0_Process --> DataStageOut --> 数据全部读完 CS = WAIT_STATU_IN In transaction (取走 0 长度数据包) 触发 CTR 中断 In0_Process –>VCP_Status_IN,即根据数据阶段得到的帧格式来配置 USART 本帖被以下淘专辑推荐:
|
|
相关推荐
|
|
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
515 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
515 浏览 0 评论
780 浏览 0 评论
如何用OpenCV的相机捕捉视频进行人脸检测--基于米尔NXP i.MX93开发板
1360 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十章 YOLO2人手检测实验
572 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11755 浏览 31 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 18:19 , Processed in 0.559195 second(s), Total 69, Slave 50 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号