别再让大整数打印报错打断你的调试!一个sys.set_int_max_str_digits设置全解(附Jupyter Notebook示例)
2026/6/15 6:22:10
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 是一种通用的串行总线接口,其主要特点包括:
关键参数:
STM32F407 系统芯片配备了 2 个 USB OTG 接口:
| USB 接口 | 引脚 | 速度 | 适用场景 |
|---|---|---|---|
| USB OTG FS | PA11(DM), PA12(DP) | 全速 12Mbps | USB鼠标、键盘、U盘等 |
| USB OTG HS | PB14(DM), PB15(DP) | 高速 480Mbps | 高速数据传输、视频等 |
关键特性:
USB 的基本工作原理是通过差分信号线进行数据传输。
通信流程:
USB 支持四种传输模式:
控制传输:
批量传输:
中断传输:
同步传输:
USB 设备使用描述符来描述设备信息。
描述符类型:
以 USB OTG FS 从机模式为例,使用标准库配置 USB 的基本步骤:
#include"stm32f4xx.h"/** * @brief 初始化USB OTG FS * @param 无 * @retval 无 */voidUSB_OTG_FS_Init(void){GPIO_InitTypeDef GPIO_InitStructure;// 1. 使能时钟RCC_AHB1PeriphClockCmd