Skip to main content

👋 About Me

🎯 Position: Embedded Software Engineer
📍 Location: Shenzhen/Guangzhou/Foshan (Negotiable)
🌸 Status: Available for Opportunities


✨ Core Strengths

Why Choose Me?
StrengthHighlights
🔧 Engineering Practice2 complete embedded projects (Environmental Monitor + Self-Balancing Robot), independently responsible from hardware selection to software architecture
📚 Technical Documentation90+ technical blog posts, each originating from real-world problems, consistently delivering high-quality original content
💻 Code Quality AwarenessPursuing code standards in blog solutions and projects, emphasizing readability and maintainability
🎯 Rapid Learning AbilitySelf-taught STM32, MQTT, PID control and successfully delivered projects; currently learning FreeRTOS/ESP32
📖 Documentation SkillsStructured design documents + API specifications + test reports, reducing team collaboration costs

🎓 Education

University of South China | Electrical Engineering | Bachelor's Degree | 2021.09–2025.06

Relevant Coursework: Microcontroller Principles & Applications, Microcomputer Principles & Interface Technology, Automatic Control Principles, Analog/Digital Electronic Technology

Language Skills: English CET-6 (Proficient in spoken English)


🛠️ Technical Skills

Programming Languages

C
  • Proficient in struct encapsulation, pointer operations, state machine programming
  • Understanding of memory management and data structure design
  • 60+ LeetCode Algorithm Solutions covering linked lists, two pointers, dynamic programming, and other core algorithms

MCU Development Platforms

STM32 Series
  • Proficient in SPL/HAL development
  • Familiar with timer interrupts, DMA, watchdog, and other peripheral drivers
51 Microcontroller
  • Understanding of register configuration and interrupt systems
  • Capable of low-level driver development

Communication Protocol Stack

Basic Protocols
  • UART (Modbus RTU), I2C (Software/Hardware), SPI
  • Understanding of circular buffer and state machine parser design
IoT Protocols
  • MQTT Protocol (QoS0/Topic Subscription/Asynchronous Processing)
  • OneNET Cloud Platform Integration (Object Model Data Reporting/Command Delivery)
  • ESP8266 AT Command Set (Non-blocking Communication Architecture)

Hardware Skills

PCB Design
  • JLC EDA, independently completed double-layer board design and soldering debugging
  • Capable of schematic design and component selection

Development Toolchain

IDE & Debugging
  • Keil MDK, STM32CubeMX, PlatformIO
  • Git Version Control, VOFA+ Serial Oscilloscope
Documentation & Knowledge Base
  • Structured Design Documents (System Architecture/API Specifications/Test Verification)
  • Docusaurus Static Website Development and Technical Blog Operation

💼 Project Experience

1. 🏗️ Real-Time Environmental Monitoring Terminal | Independent Development | 2025.02–2025.05

Multi-sensor data acquisition system based on STM32+ESP8266, enabling real-time monitoring of environmental parameters such as PM2.5, noise, temperature and humidity, with stable cloud upload to OneNET platform

Technical Architecture
  • MCU: STM32F103C8T6 (72MHz, 20KB RAM, 64KB Flash)
  • Sensors: PMS7003 (UART+DMA), XM7903 (Modbus RTU), DHT11
  • Communication: ESP8266 WiFi Module (AT Commands + State Machine Parser)
  • Cloud Platform: OneNET (MQTT Protocol)
Key Contributions

Hardware Design & Stability Assurance

Task Manager

  • Non-blocking task manager based on time-slice round-robin scheduling (data acquisition/upload/alarm)
  • Over-limit audible/visual alarm, remote threshold configuration via mobile APP

Resource Optimization & Performance Improvement

  • Optimized code to fit firmware within 64KB, resolving startup anomalies
  • PM2.5 response time ≤ 2s, noise measurement error < 1dB

Non-blocking Communication Architecture

Achievements
  • ✅ Scheduled data upload success rate > 99%
  • ✅ Supports remote configuration and real-time alarms

🔗 Repository: https://github.com/Eureka12138github/My_UGP


2. ⚖️ Self-Balancing Robot Control System | Independent Development | 2025.12–2026.01

Two-wheel self-balancing robot based on STM32, achieving 200Hz real-time attitude estimation and three-loop cascaded PID control, validating control theory and engineering practice capabilities

Technical Architecture
  • MCU: STM32F103C8T6 (72MHz)
  • Sensor: MPU6050 (6-axis IMU, software I2C driver)
  • Motor Driver: TB6612FNG (PWM speed control + encoder feedback)
  • Control Algorithm: Positional PID, Cascaded PID, Incomplete Derivative + Variable Speed Integral + Friction Compensation
Key Contributions

Attitude Estimation Algorithm

  • Complementary filter fusion of accelerometer and gyroscope data
  • 200Hz timer interrupt real-time calculation, static angle error ±2°

Three-Loop Cascaded Control

  • Upright loop (PD) + Speed loop (PI) + Steering loop (PI) cascaded control
  • Introduced incomplete derivative + variable speed integral + friction compensation algorithms
  • Resolved high-frequency oscillation and startup jitter issues

Modular Architecture Design

Configuration Layer (Macro Definitions/Pin Management)

Driver Layer (Peripheral Drivers, Portable Across Projects)

Application Layer (Business Logic & Algorithms)

Clear three-layer core dependencies, supporting cross-project driver reuse

  • System Layer: delay, timer, iwdg, and other basic functions, relatively independent
  • Tool Layer: PID algorithms, circular buffers, and other universal components, used across layers

Third-Party-Free OLED Menu Framework

  • State machine manages multi-level pages, Flash usage only 2.3KB
  • Supports online tuning of 9 sets of PID parameters with Flash persistent storage

Debugging & Optimization

  • VOFA+ serial oscilloscope for real-time waveform analysis
  • Optimized filter cutoff frequency and sampling period ratio to improve system robustness
Achievements
  • ✅ Achieved stable standing for 30+ seconds
  • ✅ Anti-interference capability: quickly recovers balance after light push

🔗 Repository: https://github.com/Eureka12138github/Self-Balancing-Robot


3. 📝 Technical Blog System | Independent Operation | 2025.05–Present

Static technical blog based on Docusaurus v3, recording learning trajectory and technical accumulation, published 90+ articles

Tech Stack
  • Framework: Docusaurus v3 (React/MDX)
  • Deployment: Vercel + GitHub Pages dual environment
  • Features: Algolia Search, Giscus Comments, Chinese-English bilingual i18n
Key Highlights

Performance Optimization Practices

  • Developed batch image compression script to improve loading speed
  • Multi-environment deployment script (Vercel/GitHub Pages one-click switch) with SSH auto-configuration support
  • CSS animation GPU acceleration optimization to improve starfield rendering performance

🌟 Technical Insights

Circular Buffer Design & Implementation

In embedded development, circular buffers are core components for serial communication and sensor data acquisition. I deeply analyzed two classic implementation approaches:

ApproachPrincipleUse Case
Flag VersionUses full flag to distinguish empty/fullPriority on 100% capacity utilization
Slot VersionSacrifices one slot to distinguish empty/fullSaves metadata storage
Key Design Features
  • Opaque Pointer structure hiding improves encapsulation
  • Static instance pool management completely avoids dynamic memory allocation
  • Dual-write mode support (non-overwrite/overwrite modes)

📖 Read Full Article: Circular Buffer Implementation


Embedded Debug Log System Design

For embedded system debugging, designed a modular log system based on conditional compilation:

#ifdef ONENET_DEBUG
#define ONENET_LOG(fmt, ...) \
UsartPrintf(USART_DEBUG, "[ONENET] " fmt "\r\n", ##__VA_ARGS__)
#else
#define ONENET_LOG(fmt, ...)
#endif
Core Advantages
  • ✅ Zero runtime overhead (preprocessor directly removes code)
  • ✅ Modular switches for flexible control
  • ✅ Retains diagnostic capabilities for issue reproduction

📖 Read Full Article: Embedded Debugging Techniques


Serial Communication Architecture Philosophy

Deep understanding of engineering trade-offs in serial port transmission methods:

Application ScenarioRecommended ApproachReason
Debug PrintingBlocking PollingSimple and direct, deadlock indicates problem location
Protocol CommunicationInterrupt + Circular BufferAvoids UI freezing, timely response
High-Speed Data StreamDMAZero CPU load, high throughput

Core Principle: Control flow should be synchronous, data flow should be asynchronous

📖 Read Full Article: Serial Communication Details


AT Command Communication Response Strategy

When using ESP8266 for AT command communication, clearly distinguish between two types of behaviors:

  • 🔧 Command Channel (e.g., WiFi connection, TCP establishment): Must wait for explicit response (OK/ERROR)
  • 📡 Data Channel (e.g., sending sensor data): Return immediately without waiting for "SEND OK"

Unified handling of asynchronous responses through main thread synchronous blocking (with timeout) + main loop non-blocking state machine, achieving a robust and fluent communication architecture.

📖 Read Full Article: AT Command Communication Insights


📚 Continuous Learning & Growth

Current Focus

  • 🔥 FreeRTOS: Task scheduling, message queues, semaphore mechanism source code analysis
  • 🔥 ESP32-S3: IoT application development (WiFi+BLE dual mode)

Next Steps

  • 📖 Embedded Linux Driver Development (Character Devices/Device Tree)
  • 📖 RT-Thread RTOS Source Code Analysis & Porting
  • 📖 Deep Understanding of Operating System Principles (Process/Thread/Memory Management)

Learning Methodology

Encounter problems in practice → Deeply analyze principles → Output technical articles → Internalize into knowledge system

Every blog post originates from challenges encountered in real projects, and every summary represents a reconstruction and sublimation of knowledge.


💬 Contact Me

If you're interested in my resume or would like to discuss technical issues further, feel free to contact me through the following channels:


💡 About This Website:
This is not just my technical blog, but a true record of my learning journey. Every article originates from problems encountered in practice, and every summary represents deep internalization of knowledge.

To Hiring Managers: If you've read this far, thank you for your patience. I fully understand that I don't come from a top-tier university, but I believe: continuous learning enthusiasm + solid engineering practice + systematic summarization ability = a reliable team member. I look forward to the opportunity to meet with you!

加载评论中...