STM32单片机128*64 OLED显示图片动画需要几张图片合适

单片机/PLC wes 1 day ago (2026-07-19) 33 views
STM32+128*64 OLED可以显示动画,比如显示可爱的表情包动画,但需要多少张图片轮换显示才能感觉比较连贯流畅呢,下面我简单分析一下。

一、帧率与张数核心基准

人眼视觉暂留:≥12 帧 / 秒 肉眼无卡顿;≥24 帧 / 秒 丝滑流畅 OLED 刷新有 I2C 通信开销,128*64 全屏位图刷新一帧约 3~8ms,优先低帧方案减少卡顿。

1. 极简循环(低成本,适合小幅度动效:眨眼、轻微晃头)

4~6 张图,循环帧率 12fps 适用:布丁狗眨眼、耳朵小幅摆动、轻微点头 优点:数组占用 Flash 极小,6 张 68×64 图仅几 KB,刷新不卡顿; 缺点:大幅度动作会有明显跳帧。

2. 平衡通用档(推荐,兼顾流畅 + 存储)

8~12 张图,循环帧率 16~20fps(OLED 最优区间) 适用:完整表情包:挥手、跳跃、摇头、蹦跳、眨眼全套循环; 效果:肉眼几乎看不出断层,日常表情包动画完全够用; 存储:12 张 68×64 单色图 ≈ 12 * (68*64/8) = 6528 字节,Flash 无压力。

3. 丝滑高流畅(大幅度连贯动作:跑跳、大幅度摇摆)

16~24 张图,24fps 满帧流畅 适用:大幅度连续动作、Q 版走路循环; 缺点:图片数组体积翻倍,I2C 刷新变慢,若延时太短会出现画面撕裂。

二、结合你布丁狗表情包的实操建议

1. 基础微动表情包(眨眼 / 小晃耳朵)

最少 4 张 循环示例: ①睁眼 → ②半闭眼 → ③全闭眼 → ④半睁眼,4 帧循环,12fps 肉眼顺滑。

2. 完整动态表情包(挥手蹦跳,日常使用首选)

8~10 张 最优: 包含上升、最高点、下落、落地缓冲、挥手多阶段过渡,过渡帧充足无跳跃,Flash 占用低,OLED 刷新不拖影。

3. 大幅度连续动画(持续蹦跳、左右摇摆)

用到 12~16 张,增加缓冲帧消除顿挫感。

三、硬件 OLED 配套延时参数(防止卡顿 / 残影)

  1. 8 帧循环,单帧延时40~60ms(16~20fps),流畅不闪;
  2. 4 帧极简循环,单帧延时70~80ms(12fps);
  3. 24 帧高帧动画,单帧延时30ms,I2C 速度慢的屏幕会轻微撕裂,建议降低到 16 帧。

四、关键省空间技巧(多张图不占 Flash)

  1. 单色 1bit 位图取模,1 张 68×64 仅 544 字节;
  2. 动作变化小的帧,共用基础图层,只改动局部(比如只换眼睛,身体共用);
  3. 动画循环首尾帧做过渡,避免循环跳转时顿挫。

总结

  • 追求省存储、微动表情包:4~6 张
  • 日常通用动态表情包(布丁狗挥手 / 蹦跳):8~12 张(最推荐)
  • 大幅度连续流畅动画:16~24 张