摘要: 在前两篇文章中,我们从底层电气信号、包/事务/传输模式,再到USB设备枚举完整流程、标准请求、全套描述符完成理论讲解。理论中主机发送SETUP请求、读取各类描述符、分配地址、激活配置,所有设备侧应答逻辑,在STM32的USB Device库中全部由软件代码实现。本篇以CDC虚拟串口为例,拆解STM32 USB设备库各源文件职责,把上一篇的枚举流程和C代码一一对应,理清「主机标准请求→库底层处理→应用层回调→返回描述符/应答」完整链路。 阅读全文
posted @ 2026-08-27 15:04 比特向阳 阅读(135) 评论(0) 推荐(1)
摘要: USB协议定义了一套标准化的设备描述符体系和主机标准请求指令,并通过固定的设备枚举流程,完成主机与设备的握手、信息交互、地址分配、功能配置。这是USB设备从“硬件接入”到“系统可用”的核心逻辑,也是USB即插即用特性的底层实现原理。 阅读全文
posted @ 2026-08-25 15:36 比特向阳 阅读(153) 评论(0) 推荐(3)
摘要: USB深度解析(一):低速、全速电气特性与通信协议 在当今的计算机外设接口中,USB(Universal Serial Bus)无疑占据着统治地位。虽然USB标准已经迭代到了高速的USB 3.x甚至USB4,但低速和全速模式作为USB架构的基石,定义了USB最初也是最底层的连接逻辑。高速的USB协议 阅读全文
posted @ 2026-08-24 23:17 比特向阳 阅读(255) 评论(1) 推荐(2)
摘要: C 语言指定初始化器实用详解 阅读全文
posted @ 2026-03-19 23:43 比特向阳 阅读(77) 评论(0) 推荐(0)
摘要: 良好的代码习惯和高效的类型定义在项目中扮演着至关重要的角色。typedef,它不仅是一个语法糖,更是提升代码质量和可维护性的利器。在这篇文章中,将为你介绍typedef 4 种应用方式。 阅读全文
posted @ 2026-03-04 23:04 比特向阳 阅读(152) 评论(0) 推荐(0)
摘要: 嵌入式系统开发中,如串口UART、蓝牙、轻量级网络等通信链路往往需要自定义封包协议来保证数据传输的准确性。本文分享一套**简洁、通用、易实现**的帧协议设计方案,适配多类嵌入式通信场景。 阅读全文
posted @ 2026-03-02 23:32 比特向阳 阅读(231) 评论(0) 推荐(0)
摘要: 层级 名称 职责说明 依赖关系 典型文件/模块 1 硬件抽象层 (HAL) 芯片寄存器操作,与硬件直接交互 无 stm32f1xx_hal_*.c, CMSIS 2 板级支持包 (BSP) 开发板硬件驱动,如LED、按键、UART配置 → HAL bsp_led.c, bsp_key.c, bsp_ 阅读全文
posted @ 2026-03-02 23:23 比特向阳 阅读(148) 评论(0) 推荐(0)
摘要: Git:临时切换分支保存当前工作 方案一:Git Stash 暂存功能 1、 保存当前工作 # 或使用简短命令 git stash # 添加描述信息 git stash push -m "开发登录验证逻辑" # 查看stash列表 git stash list # stash@{0}: On fea 阅读全文
posted @ 2026-03-02 23:21 比特向阳 阅读(52) 评论(0) 推荐(0)
摘要: 分支名是团队成员之间最频繁看到的"标识",一个好的分支名能立即传达核心内容。 阅读全文
posted @ 2026-03-02 23:20 比特向阳 阅读(106) 评论(0) 推荐(0)
摘要: Git:功能开发的提交策略 1.1 推荐的Git工作流 主分支 (main/master) -- 永远保持稳定可发布状态 ↑ 功能分支 (feature/*) -- 每个功能一个分支 ↑ 临时提交 (daily work) -- 每天多次提交 1.2 具体操作命令 第1步:创建功能分支 # 从主分支 阅读全文
posted @ 2026-02-28 16:20 比特向阳 阅读(36) 评论(0) 推荐(0)