一个专门给嵌入式系统量身打造的超小型、超快、零依赖的格式化输出库printf

本文介绍了一款专为嵌入式系统设计的轻量级 printf 库,旨在解决传统 libc 实现导致的代码体积膨胀问题。相比标准库常需 20KB 以上,该库仅需约 600 行源码,占用空间仅几 KB,且具备零依赖特性,无需链接外部库,单文件即可集成。它完全支持线程安全,可通过宏开关按需裁剪浮点、长整型等功能,适应资源受限环境。开发者只需实现简单的_putchar 回调函数即可调用,兼容%d、%f、%x 等标准格式。项目拥有超过 400 条单元测试,确保功能可靠性。对于追求极致性能、稳定性及低内存占用的 MCU 项目,这是理想的日志与调试工具选择,能显著提升开发效率。

lwpkt:一个用C11写成、专注多设备通信的包协议管理器

lwpkt是一款用C11编写的轻量级包协议管理器,专为多设备通信场景设计。它完美解决了RS-485网络中常见的串包、堵塞、数据校验等痛点问题。核心特性包括:可配置的包头包尾与可变长度支持、内置CRC校验确保数据可靠传输、基于LwRB环形缓冲区的高效读写操作、灵活的事件回调机制实时感知包状态。纯C11实现,无平台依赖,MIT开源授权,特别适合嵌入式环境使用。无论是工业控制还是物联网项目,lwpkt都能让你的多节点通信稳如泰山,告别手写协议框架的烦恼。

一个C文件搞定RTSP服务?这个叫smol的开源库,简直是嵌入式视频开发的瑞士军刀!

在资源极度受限的嵌入式设备上实现RTSP视频流服务一直是个难题,传统方案如Live555体积庞大、依赖繁多。而开源项目smolrtsp以极简设计脱颖而出:仅一个C文件、KB级资源占用、零拷贝解析、高度解耦网络后端,专为IP摄像头等边缘设备打造。它已在OpenIPC等实战项目中稳定运行,适用于安防、无人机、智能门铃等场景,是嵌入式开发者追求极致性能与效率的理想选择。

fifofast:一个用纯 C 写的、零动态内存、超小管理开销(一般只要 3 字节!)的通用 FIFO 实现

fifofast是一款专为MCU设计的纯C语言FIFO环形缓冲区库,采用零动态内存分配,管理开销仅3字节。通过2ⁿ位运算优化消除分支判断,支持任意数据类型与inline加速,特别适合AVR、ARM等资源受限场景的串口缓存、ADC缓冲及中断数据交换。

用几百行代码把完整的printf格式化功能搬到了裸机环境

本文介绍了mpaland/printf这款轻量级开源库,它专为资源受限的嵌入式环境设计。传统stdio.h实现体积过大,而该库仅需几百行源码即可提供完整的printf/sprintf/snprintf/fctprintf功能,支持浮点、长整等多种格式,且完全零依赖、线程安全。通过简单的_putchar()适配即可在STM32、ESP32等MCU上使用,还可按需裁剪功能,是嵌入式开发的理想选择。

U8g2:超省内存+海量字体的显示库

U8g2是一款专为单色OLED/LCD设计的通用图形库,支持上百种屏幕控制器(SSD1306、ST7565、KS0108等),集成线/框/圆/三角等常用图形绘制,提供从5×7到72pt的上百种像素字体。支持FULL buffer和PAGE buffer两种模式,兼顾流畅度与内存占用。统一API设计让开发者无需关心底层硬件差异,切换屏幕时代码几乎无需修改,是嵌入式显示项目的理想选择。

lwbtn:一个用 C11 编写的超轻量级按键管理库,不依赖操作系统,零动态内存

lwbtn是一个超轻量级的C11按键管理库,专为嵌入式设备设计。它不依赖任何操作系统,无需动态内存分配,只需提供毫秒级时间源即可工作。支持单击、多击、长按、保活等多种事件,内置软件防抖功能,兼容STM32、Arduino、Win32等平台。这个库把复杂的按键状态机封装成简单易用的API,让开发者告别手写繁琐的按键逻辑,非常适合资源受限的MCU项目使用。

MultiButton:一个轻量、灵活的多按键状态库

MultiButton 是一款专为嵌入式设计的轻量级多按键状态机库。它内置去抖功能,支持单击、双击、长按等多种事件判断,通过回调机制简化业务逻辑。无需手动编写复杂的 if-else 状态判断,只需配置 GPIO 和定时器中断即可自动处理按键状态。该库支持多实例管理,内存占用低,参数可灵活配置,能有效解决按键抖动、逻辑混乱等痛点,是 IoT 项目和 DIY 小玩意的理想选择,大幅提升开发效率。