news 2026/4/16 10:58:47

STM32_USB

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
STM32_USB
简介

USB(Universal Serial Bus,通用串行总线)是 STM32 单片机中用于与外部设备进行高速数据通信的外设,支持 USB 2.0 全速(12Mbps)和高速(480Mbps)模式,广泛应用于数据传输、设备枚举、人机交互等场景。STM32F407 系列芯片配备了 2 个 USB OTG 接口(USB OTG FS 和 USB OTG HS),支持主机、从机和 OTG 模式,可连接各种 USB 设备。本文从 USB 的基本原理出发,详细讲解 STM32F407 USB 的配置方法、代码实现、通信协议以及实际应用案例,帮助你快速掌握 USB 的使用技巧。

一、USB核心概念与分类
1.1 基本概念

USB 是一种通用的串行总线接口,其主要特点包括:

  • 高速传输:支持 USB 2.0 全速(12Mbps)和高速(480Mbps)模式
  • 即插即用:支持热插拔,无需重启系统
  • 多种模式:支持主机、从机和 OTG 模式
  • 多设备支持:一个主机可连接多达 127 个设备
  • 统一供电:支持 5V 电源供电

关键参数

  • 传输速率:全速 12Mbps,高速 480Mbps
  • 传输模式:控制传输、批量传输、中断传输、同步传输
  • 端点数量:支持多个端点
  • 供电方式:总线供电或自供电
1.2 STM32F407 的 USB 资源

STM32F407 系统芯片配备了 2 个 USB OTG 接口:

USB 接口引脚速度适用场景
USB OTG FSPA11(DM), PA12(DP)全速 12MbpsUSB鼠标、键盘、U盘等
USB OTG HSPB14(DM), PB15(DP)高速 480Mbps高速数据传输、视频等

关键特性

  • 支持主机、从机和 OTG 模式
  • 支持多种传输模式
  • 支持多个端点
  • 支持 DMA 传输
二、USB工作原理
2.1 基本工作原理

USB 的基本工作原理是通过差分信号线进行数据传输。

通信流程

  1. 主机枚举设备
  2. 主机发送请求到设备
  3. 设备响应请求
  4. 数据传输
2.2 传输模式

USB 支持四种传输模式:

控制传输

  • 用于设备枚举和配置
  • 保证数据传输的可靠性
  • 适用于控制命令和状态查询

批量传输

  • 用于大量数据传输
  • 不保证实时性
  • 适用于文件传输、打印机等

中断传输

  • 用于少量数据传输
  • 保证实时性
  • 适用于鼠标、键盘等

同步传输

  • 用于实时数据传输
  • 不保证可靠性
  • 适用于音频、视频等
2.3 USB 描述符

USB 设备使用描述符来描述设备信息。

描述符类型

  • 设备描述符:描述设备的基本信息
  • 配置描述符:描述设备的配置信息
  • 接口描述符:描述设备的接口信息
  • 端点描述符:描述设备的端点信息
三、USB配置与代码实现
3.1 标准库配置步骤

以 USB OTG FS 从机模式为例,使用标准库配置 USB 的基本步骤:

  1. 使能 USB 时钟和 GPIO 时钟
  2. 配置 GPIO 为复用功能
  3. 配置 USB 基本参数
  4. 配置 USB 描述符
  5. 使能 USB
3.2 代码实现(USB OTG FS,从机模式)
#include"stm32f4xx.h"/** * @brief 初始化USB OTG FS * @param 无 * @retval 无 */voidUSB_OTG_FS_Init(void){GPIO_InitTypeDef GPIO_InitStructure;// 1. 使能时钟RCC_AHB1PeriphClockCmd
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 8:53:48

游戏本地化工具:告别语言障碍的Honey Select 2汉化补丁使用指南

游戏本地化工具:告别语言障碍的Honey Select 2汉化补丁使用指南 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 当你启动Honey Select 2却面对满屏日…

作者头像 李华
网站建设 2026/4/15 15:04:47

Open Interpreter卡顿问题解决:GPU算力优化部署实战案例

Open Interpreter卡顿问题解决:GPU算力优化部署实战案例 1. 为什么Open Interpreter会卡?——从“能跑”到“跑得爽”的真实痛点 你是不是也遇到过这样的情况: 刚兴冲冲地 pip install open-interpreter,启动 WebUI,…

作者头像 李华
网站建设 2026/4/16 8:56:10

不用Whisper了!我改用SenseVoiceSmall做转录更高效

不用Whisper了!我改用SenseVoiceSmall做转录更高效 你是不是也经历过这样的场景:会议录音导出来,想快速整理成文字,结果用Whisper跑一遍要等两分钟,还得手动加标点、分段、标注说话人?更别提那些笑声、掌声…

作者头像 李华
网站建设 2026/4/16 9:04:57

EldenRingSaveCopier完全教程:存档备份与角色迁移安全指南

EldenRingSaveCopier完全教程:存档备份与角色迁移安全指南 【免费下载链接】EldenRingSaveCopier 项目地址: https://gitcode.com/gh_mirrors/el/EldenRingSaveCopier 《艾尔登法环》玩家的冒险之旅中,存档数据如同珍贵的卢恩,一旦丢…

作者头像 李华
网站建设 2026/4/16 7:22:42

MGeo在银行反欺诈中的应用:同一人多地注册识别实战

MGeo在银行反欺诈中的应用:同一人多地注册识别实战 1. 为什么银行需要“地址相似度”这把尺子? 你有没有想过,一个真实用户可能用完全不同的身份信息,在不同城市、不同银行反复开户?比如: 张三在杭州用身…

作者头像 李华
网站建设 2026/4/16 9:06:06

3大维度优化系统内存:Mem Reduct让低配置电脑焕发新生

3大维度优化系统内存:Mem Reduct让低配置电脑焕发新生 【免费下载链接】memreduct Lightweight real-time memory management application to monitor and clean system memory on your computer. 项目地址: https://gitcode.com/gh_mirrors/me/memreduct 你…

作者头像 李华