1. USB读卡器(Slave)实验:STM32F407全速设备模式深度解析
USB读卡器实验是嵌入式系统中一个典型的、兼具实用性与教学价值的USB设备类(Device Class)项目。它将STM32F407开发板配置为一个标准的USB大容量存储设备(Mass Storage Class, MSC),使其能够被PC主机识别为一个U盘,从而实现对板载SD卡和SPI Flash(W25Q128)的即插即用式文件存取。该实验并非简单的功能堆砌,而是对STM32 USB OTG FS控制器、ST官方USB库架构、底层硬件抽象层(BSP)、设备类驱动以及应用逻辑之间协同工作的完整实践。其核心挑战在于将官方评估板(EVAL)的参考设计,精准地移植到正点原子探索者F407开发板上,并解决因硬件差异(如USB PHY连接方式、外设资源分配)和软件环境(HAL库与标准外设库混用)带来的系统性适配问题。本实验的成功实现,标志着开发者已具备了在STM32平台上构建复杂USB外设的工程能力。
1.1 实验技术栈与参考资料体系
一个成功的USB设备开发项目,其根基在于对官方文档和技术资料的系统性掌握。本实验的技术栈构建于三个相互支撑的层面之上:硬件规范、协议栈内核与应用实例。
第一层:硬件与协议规范层
-《STM32F4xx中文参考手册》第30章 “USB on-the-go (OTG) FS”:这是所有开发工作的基石。它详细定义了USB OTG FS控制器的寄存器映射、时钟域要求(HB总线频率必须大于14.2 MHz,USB专用48 MHz时钟源自PLL48CK并与SDIO共享)、中断向量、DMA通道以及PHY接