👋 关于我
🎯 求职意向:嵌入式软件开发工程师
📍 期望城市:深圳/广州/佛山 (可协商)
🌸 目前状态:求职中
✨ 核心优势
为什么选择我?| 优势维度 | 具体体现 |
|---|---|
| 🔧 工程实践能力 | 2 个完整嵌入式项目(环境监测仪 + 自平衡车),从硬件选型到软件架构独立负责 |
| 📚 技术沉淀习惯 | 90+ 篇技术博客,每篇源于真实问题,持续输出高质量原创内容 |
| 💻 代码质量意识 | 在博客题解与项目中追求代码规范,注重可读性与可维护性 |
| 🎯 快速学习能力 | 自学 STM32、MQTT、PID 控制并完成项目落地,持续学习 FreeRTOS/ESP32 |
| 📖 文档表达能力 | 结构化设计文档 + API 接口说明 + 测试报告,降低团队协作成本 |
🎓 教育背景
南华大学 | 电气工程类 | 本科 | 2021.09–2025.06
相关课程:单片机原理与应用、微机原理及接口技术、自动控制原理、模拟/数字电子技术
语言能力:英语 CET-6(具备六级口语能力)
🛠️ 专业技能
编程语言
C 语言- 掌握结构体封装、指针操作、状态机编程
- 理解内存管理与数据结构设计
- 60+ 篇 LeetCode 算法题解,涵盖链表、双指针、动态规划等核心算法
MCU 开发平台
STM32 系列- 掌握标准库/HAL 库开发
- 熟悉定时器中断、DMA、看门狗等外设驱动
- 理解寄存器配置与中断系统
- 能够进行底层驱动开发
通信协议栈
基础协议- UART(Modbus RTU)、I2C(软件/硬件)、SPI
- 理解环形缓冲区、状态机解析器设计
- MQTT 协议(QoS0/主题订阅/异步处理)
- OneNET 云平台接入(物模型数据上报/命令下发)
- ESP8266 AT 指令集(非阻塞通信架构)
硬件能力
PCB 设计- 嘉立创 EDA,独立完成双层板设计与焊接调试
- 能够进行原理图设计、元器件选型
开发工具链
IDE 与调试- Keil MDK、STM32CubeMX、PlatformIO
- Git 版本控制、VOFA+ 串口示波器
- 结构化设计文档(系统架构/API 接口/测试验证)
- Docusaurus 静态网站搭建与技术博客运营
💼 项目经历
1. 🏗️ 工地环境实时监测终端 | 独立开发 | 2025.02–2025.05
技术架构基于 STM32+ESP8266 的多传感器数据采集系统,实现 PM2.5、噪音、温湿度等环境参数实时监测与 OneNET 云平台稳定上云
- MCU:STM32F103C8T6(72MHz,20KB RAM,64KB Flash)
- 传感器:PMS7003(UART+DMA)、XM7903(Modbus RTU)、DHT11
- 通信:ESP8266 WiFi 模块(AT 指令 + 状态机解析器)
- 云平台:OneNET(MQTT 协议)
硬件设计与稳定性保障
- 独立选型并集成多类型传感器,设计看门狗+Flash 日志异常恢复机制
- 24 小时连续运行有效率 > 99%
- 传感器数据采集中断死锁问题分析
任务管理器
- 基于时间片轮询的非阻塞任务管理器(数据采集/上传/报警)
- 超限声光报警、手机 APP 远程阈值配置
资源优化与性能提升
- 代码优化将固件体积控制在 64KB 内,解决启动异常问题
- PM2.5 响应时间 ≤ 2s,噪音测量误差 < 1dB
非阻塞通信架构
- 设计环形缓冲区 + 状态机解析器,实现 ESP8266 异步通信
- 异步处理 URC 帧,保障 115200bps 高速率下数据完整性与 UI 流畅
- 环形缓冲区完整实现
- AT 指令通信响应等待策略
- ✅ 数据定时上传成功率 > 99%
- ✅ 支持远程配置与实时报警
🔗 代码仓库:https://github.com/Eureka12138github/My_UGP
2. ⚖️ 自平衡车控制系统 | 独立开发 | 2025.12–2026.01
技术架构基于 STM32 的双轮自平衡机器人,实现 200Hz 实时姿态解算与三闭环串级 PID 控制,验证控制理论与工程实践能力
- MCU:STM32F103C8T6(72MHz)
- 传感器:MPU6050(六轴 IMU,软件 I2C 驱动)
- 电机驱动:TB6612FNG(PWM 调速 + 编码器反馈)
- 控制算法:位置式 PID、串级 PID、不完全微分 + 变速积分 + 摩擦力补偿
姿态解算算法
- 互补滤波融合加速度计与陀螺仪数据
- 200Hz 定时器中断实时解算,静态角度误差 ±2°
三闭环串级控制
- 直立环 (PD) + 速度环 (PI) + 转向环 (PI) 串级控制
- 引入不完全微分 + 变速积分 + 摩擦力补偿算法
- 解决高频震荡与启动抖动问题
模块化架构设计
配置层(宏定义/引脚管理)
↓
驱动层(外设驱动,可独立移植)
↓
应用层(业务逻辑与算法)
三层核心依赖清晰,支持驱动层跨项目复用
- 系统层:delay、timer、iwdg 等基础函数,相对独立
- 工具层:PID 算法、环形缓冲区等通用组件,跨层使用
无第三方依赖 OLED 菜单框架
- 状态机管理多级页面,Flash 占用仅2.3KB
- 支持 9 组 PID 参数整定与 Flash 持久化存储
调试与优化
- VOFA+ 串口示波器实时分析波形
- 优化滤波截止频率与采样周期配比,提升系统鲁棒性
- ✅ 实现稳定站立 30 秒+
- ✅ 抗干扰能力:轻推后可快速恢复平衡
🔗 代码仓库:https://github.com/Eureka12138github/Self-Balancing-Robot
3. 📝 技术博客系统 | 独立运营 | 2025.05–至今
技术栈基于 Docusaurus v3 的静态技术博客,记录学习轨迹与技术沉淀,已发布 90+ 篇文章
- 框架:Docusaurus v3(React/MDX)
- 部署:Vercel + GitHub Pages 双环境
- 功能:Algolia 搜索、Giscus 评论、中英双语 i18n
性能优化实践
- 编写图片批量压缩脚本,提升加载速度
- 多环境部署脚本(Vercel/GitHub Pages 一键切换),支持 SSH 自动配置
- CSS 动画 GPU 加速优化,提升星空特效渲染性能
🌟 一些理解
环形缓冲区设计与实现
在嵌入式开发中,环形缓冲区是串口通信、传感器数据采集的核心组件。我深入剖析了两种经典实现方案:
| 方案 | 原理 | 适用场景 |
|---|---|---|
| Flag 版本 | 基于 full 标志位区分空/满 | 100% 容量利用率优先 |
| Slot 版本 | 牺牲一个 slot 区分空/满 | 节省元数据存储 |
- 结构体隐藏(Opaque Pointer)提升封装性
- 静态实例池管理,完全避免动态内存分配
- 双写入模式支持(非覆盖/覆盖模式)
嵌入式调试日志系统设计
针对嵌入式系统调试,设计了基于条件编译的模块化日志系统:
#ifdef ONENET_DEBUG
#define ONENET_LOG(fmt, ...) \
UsartPrintf(USART_DEBUG, "[ONENET] " fmt "\r\n", ##__VA_ARGS__)
#else
#define ONENET_LOG(fmt, ...)
#endif
- ✅ 零运行时开销(预处理器直接移除代码)
- ✅ 模块化开关,灵活控制
- ✅ 保留诊断能力,便于问题复现
串口通信架构设计哲学
深入理解串口收发方式的工程权衡:
| 应用场景 | 推荐方案 | 理由 |
|---|---|---|
| 调试打印 | 阻塞轮询 | 简单直接,死锁即问题定位 |
| 协议通信 | 中断 + 环形缓冲 | 避免 UI 卡死,响应及时 |
| 高速数据流 | DMA | CPU 零负载,吞吐量大 |
核心原则:控制流要同步,数据流要异步
AT 指令通信响应策略
在使用 ESP8266 进行 AT 指令通信时,清晰区分两类行为:
- 🔧 命令通道(如连接 WiFi、建立 TCP):必须等待明确响应(OK/ERROR)
- 📡 数据通道(如发送传感器数据):立即返回,不等待"SEND OK"
通过主线程同步阻塞(带超时)+ 主循环非阻塞状态机统一处理异步响应,实现健壮且流畅的通信架构。
📚 持续学习与成长
当前聚焦
- 🔥 FreeRTOS:任务调度、消息队列、信号量机制源码分析
- 🔥 ESP32-S3:物联网应用开发(WiFi+BLE 双模)
下一步计划
- 📖 嵌入式 Linux 驱动开发(字符设备/设备树)
- 📖 RT-Thread RTOS 源码分析与移植
- 📖 操作系统原理深入理解(进程/线程/内存管理)
学习方法论
实践中遇到问题 → 深度剖析原理 → 输出技术文章 → 内化为知识体系
每一篇博客都源于真实项目中的挑战,每一次总结都是对知识的重构与升华。
💬 联系我
如果您对我的简历感兴趣,或想进一步交流技术问题,欢迎通过以下方式联系:
- 📧 Email:yeyuyong.job@qq.com
- 🐙 GitHub:Eureka12138github
💡 关于这个网站:
这里不仅是我的技术博客,更是我学习轨迹的真实记录。每一篇文章都源于实践中遇到的问题,每一次总结都是对知识的深度内化。
致面试官:如果您看到了这里,感谢您的耐心阅读。我深知自己并非顶尖名校出身,但我相信:持续的学习热情 + 扎实的工程实践 + 系统的总结能力 = 可靠的团队成员。期待有机会与您面谈!