STMCU小助手
发布时间:2022-2-11 22:25
|
前言 本篇 LAT 从控制传输的角度解析了运行在“USB FS IP”这款 USB 模块上的全速 USB 设备库的结构和用法。( u6 O& e; q% V, c2 o7 r 背景:不同的 USB 模块和其对应软件包 STM32 MCU 根据系列不同,所集成的 USB IP 有所不同。本文是针对“USB FS IP”这个 USB 模块在其编 号为 STSW-STM32121 的全速 USB 设备库的一个介绍。 R# l. w" t( e- A/ N USB FS IP0 @4 S0 z5 \* [2 Y6 J 1. 集成于 STM32F1(除 F105/107)、STM32L1、STM32F36 _& ]6 B% A* n- v% ] 2. 只支持全速(FS)下的 USB 设备角色$ b" e* ?. ?. O8 Q) ^ 3. 软件包:STSW-STM32121 (v4.0.0) USB 设备库结构分析% y& A9 [* g; |* ^& r e 中断处理响应所有的 USB 事件,如下图所示。 ; F$ j- ^1 i! |* n. d2 H; @
通过控制传输处理标准枚举+类相关枚举 9 _ \; m8 G' h6 L P9 v# v& d 控制传输由三个 stage 组成,如下图所示: ; X( @4 }, t& R2 v' T$ v
/ j4 R- j$ g* T6 l9 [ 在控制传输的第一阶段(Setup stage)完成后,分析 Setup 数据包 8 字节命令,提供用户回调函数处理和应用所使用的类相* o# @: u# y$ S6 z' [- o! e8 f 关的控制命令
! h* b$ \( e. g$ e( X3 T 在控制传输的第二阶段(IN 方向的 Data stage),处理第一阶段准备好(确定了数据长度和数据起始地址)的待发送的数据; 或者. g1 r$ y7 @8 F% o$ c2 M 在控制传输的最后阶段(IN 方向的 Status stage)完成后,提供用户接口做应用相关任务 ( b/ [8 j; k- j7 ^" f1 f5 X
! T8 j5 j# C2 b3 t! ?
* g- n& R4 i$ N. \6 G% n 在控制传输的第二阶段(OUT 方向的 Data stage),接收数据;或者: | i$ x2 E) W {7 G 在控制传输的最后阶段(OUT 方向的 Status stage)完成后,提供用户接口做应用相关任务4 S( ]! Q$ e: c* r
: c4 A7 ^6 D: Y- O 结合真实枚举过程的传输来看几个实际的例子
4 z2 e) X6 g2 p' Z' a% n a7 N
|
实战经验 | 基于STM32G0B1的全桥移相+同步整流PWM解决方案
DMA 原理从 0 到 1:为什么它能解放 CPU?一文讲透 DMA 的工作流程
【福利三:逢7发帖赢大礼】8、基于STM32G070板子的Ymodem串口协议IAP Bootloader开发
【福利三:逢7发帖赢大礼】7、基于STM32G070板子TF卡的FATFS移植
【福利三:逢7发帖赢大礼】6、基于STM32G070板子spiflash的FATFS移植
【福利三:逢7发帖赢大礼】5、基于STM32G070板子IRDA红外遥控接收解码
【福利三:逢7发帖赢大礼】4、基于STM32G070板子SPI flash 移植SFUD库
【福利三:逢7发帖赢大礼】基于STM32G070板子的uart shell移植设计
【福利三:逢7发帖赢大礼】3、基于STM32G070板子的YModem串口协议通信
【福利三:逢7发帖赢大礼】2、基于STM32G070板子的OLED移植U8G2库
微信公众号
手机版