跳到主要内容

👋 关于我

🎯 求职意向:嵌入式软件开发工程师
📍 期望城市:深圳/广州/佛山 (可协商)
🌸 目前状态:求职中


✨ 核心优势

为什么选择我?
优势维度具体体现
🔧 工程实践能力2 个完整嵌入式项目(环境监测仪 + 自平衡车),从硬件选型到软件架构独立负责
📚 技术沉淀习惯90+ 篇技术博客,每篇源于真实问题,持续输出高质量原创内容
💻 代码质量意识在博客题解与项目中追求代码规范,注重可读性与可维护性
🎯 快速学习能力自学 STM32、MQTT、PID 控制并完成项目落地,持续学习 FreeRTOS/ESP32
📖 文档表达能力结构化设计文档 + API 接口说明 + 测试报告,降低团队协作成本

🎓 教育背景

南华大学 | 电气工程类 | 本科 | 2021.09–2025.06

相关课程:单片机原理与应用、微机原理及接口技术、自动控制原理、模拟/数字电子技术

语言能力:英语 CET-6(具备六级口语能力)


🛠️ 专业技能

编程语言

C 语言
  • 掌握结构体封装、指针操作、状态机编程
  • 理解内存管理与数据结构设计
  • 60+ 篇 LeetCode 算法题解,涵盖链表、双指针、动态规划等核心算法

MCU 开发平台

STM32 系列
  • 掌握标准库/HAL 库开发
  • 熟悉定时器中断、DMA、看门狗等外设驱动
51 单片机
  • 理解寄存器配置与中断系统
  • 能够进行底层驱动开发

通信协议栈

基础协议
  • 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 协议)
核心贡献

硬件设计与稳定性保障

任务管理器

  • 基于时间片轮询的非阻塞任务管理器(数据采集/上传/报警)
  • 超限声光报警、手机 APP 远程阈值配置

资源优化与性能提升

  • 代码优化将固件体积控制在 64KB 内,解决启动异常问题
  • PM2.5 响应时间 ≤ 2s,噪音测量误差 < 1dB

非阻塞通信架构

成果展示
  • ✅ 数据定时上传成功率 > 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 卡死,响应及时
高速数据流DMACPU 零负载,吞吐量大

核心原则控制流要同步,数据流要异步

📖 阅读全文:串口通信详解


AT 指令通信响应策略

在使用 ESP8266 进行 AT 指令通信时,清晰区分两类行为:

  • 🔧 命令通道(如连接 WiFi、建立 TCP):必须等待明确响应(OK/ERROR)
  • 📡 数据通道(如发送传感器数据):立即返回,不等待"SEND OK"

通过主线程同步阻塞(带超时)+ 主循环非阻塞状态机统一处理异步响应,实现健壮且流畅的通信架构。

📖 阅读全文:AT 指令通信心得


📚 持续学习与成长

当前聚焦

  • 🔥 FreeRTOS:任务调度、消息队列、信号量机制源码分析
  • 🔥 ESP32-S3:物联网应用开发(WiFi+BLE 双模)

下一步计划

  • 📖 嵌入式 Linux 驱动开发(字符设备/设备树)
  • 📖 RT-Thread RTOS 源码分析与移植
  • 📖 操作系统原理深入理解(进程/线程/内存管理)

学习方法论

实践中遇到问题 → 深度剖析原理 → 输出技术文章 → 内化为知识体系

每一篇博客都源于真实项目中的挑战,每一次总结都是对知识的重构与升华。


💬 联系我

如果您对我的简历感兴趣,或想进一步交流技术问题,欢迎通过以下方式联系:


💡 关于这个网站
这里不仅是我的技术博客,更是我学习轨迹的真实记录。每一篇文章都源于实践中遇到的问题,每一次总结都是对知识的深度内化。

致面试官:如果您看到了这里,感谢您的耐心阅读。我深知自己并非顶尖名校出身,但我相信:持续的学习热情 + 扎实的工程实践 + 系统的总结能力 = 可靠的团队成员。期待有机会与您面谈!

加载评论中...