让 Flipper Zero 固件显示中文的 3 步完整部署教程
2026/9/10 16:41:18 网站建设 项目流程

让 Flipper Zero 固件显示中文的 3 步完整部署教程

【免费下载链接】flipperzero-firmwareFlipper Zero firmware source code项目地址: https://gitcode.com/GitHub_Trending/fl/flipperzero-firmware

你在 Flipper Zero 应用里输入中文,屏幕只剩一排小方块,因为内置 u8g2 字体库只带了拉丁字符位图。本文拿 Flipper Zero 固件仓库里的示例应用做载体,带你把中文字体转成 u8g2 字体数据,让设备画出中文。读完本文,你将能在自己的应用里挂载自定义中文字体,并让 128×64 屏正常显示。

方案速览:字体替换三步走

固件的文字渲染走 canvas.h 里的 Canvas 接口,内置字体数据在 lib/u8g2/u8g2_fonts.c,其中没有中文。整件事就是三步:造一份含中文的 u8g2 字体数组,让应用在绘制时切到它,编译刷进设备。

步骤做什么得到什么
1克隆仓库,运行./fbt工具链就绪,固件编译通过
2把中文字体转成 u8g2 C 数组一份含汉字的字体数据
3示例应用里替换字体数组,编译并写入设备屏幕上出现中文

动手前检查

  • Linux 或 macOS 电脑(Windows 走 WSL)
  • Git 与终端可用
  • Flipper Zero 设备通过 USB 连接(或 Devboard)
  • 一份含中文的 TTF 字体文件,如文泉驿微米黑
  • 设备已装好 SD 卡,用于存放应用

分步实施 🔧

步骤 1:克隆固件仓库并初始化编译环境

目的:拿到可编译的 Flipper Zero 固件源码和工具链。

操作:在终端克隆仓库并进入目录:

git clone https://gitcode.com/GitHub_Trending/fl/flipperzero-firmware cd flipperzero-firmware

然后执行首次编译,fbt 会自动下载交叉编译工具链,等待其跑完即可:

./fbt

确认:终端末尾没有error,仓库根目录生成dist/,里面有各目标平台的固件镜像。

步骤 2:把中文字体转成 u8g2 格式的 C 数组

目的:TTF 固件无法直接使用,u8g2 只认自己的字体数据格式,先做转换。

操作:用 u8g2 官方字体转换脚本(u8g2 仓库中的 font build 工具)转换你的 TTF,三个关键参数:

  • 字级选 4x6 或 6x8,小屏装不下大字号
  • 字符集选含中文的子集,避免全量字形
  • 输出形式选 C 源数组,命名u8g2_font_xxx

产出的数组格式和 u8g2_fonts.c 里的u8g2_font_4x6_t_cyrillic完全一致,直接拷进你的代码即可。

确认:转换工具打印字体名和字形数,如Glyphs: 50/50,即覆盖了你需要的汉字数。

步骤 3:在示例应用里换上中文字体

目的:照着官方示例改两行,让固件真正调用你的字体绘制。

操作:打开 example_custom_font.c,关键在第 77 行:

canvas_set_custom_u8g2_font(canvas, u8g2_font_4x6_t_cyrillic);

把参数换成步骤 2 生成的中文数组,并把下方canvas_draw_str里的字符串改成要显示的中文。该示例还演示了如何注册 view port 全屏绘制,流程可原样复用。

确认:文件只改字体数组与字符串两处,数组以const uint8_t定义在文件顶部。

步骤 4:编译应用并写入设备

目的:只编译这一个应用并送达设备,比全量固件编译快得多。

操作

./fbt example_custom_font

编译通过后,把应用写入 SD 卡:

./fbt run_app

确认:编译输出无报错,fbt 提示应用已写入 SD 卡/apps/目录。

验证结果

在设备应用列表里打开 "Example: custom font",屏幕上应出现你写入的中文文本,按返回键退出。若整条链路正常,说明字体数据、绘制调用、编译刷写三处都通了。

踩坑速查 ⚡

  • 现象:编译报内存不足或应用体积超限。原因:全量汉字位图达数 MB,超出应用内存预算。处理:改用 4x6 小字级,或只保留所需几十到几百个字的子集字体。
  • 现象:中文挤成一团或被裁掉一半。原因:字体高度与绘制坐标不匹配,y 值偏小。处理:核对转换器输出的字体高度,调大canvas_draw_str的 y 参数(示例里是 6)。
  • 现象flash_usb提示找不到设备。原因:设备未进 bootloader,或串口工具占着端口。处理:断电后按住中键再插 USB,并关掉占用串口的调试工具。
  • 现象:设备应用列表里看不到新应用。原因.fap没真正落到 SD 卡,或列表未刷新。处理:检查 SD 卡/apps/目录,然后重启设备。

收尾

四步做完,你的 Flipper Zero 就能渲染自定义中文字体了。想继续看绘制接口,从 canvas.h 入手;应用开发全流程可参考 app_dev_gui.md。字体数据本身只是一份 C 数组,补一份中文字体数据,就是你参与这个项目的最短路径。

【免费下载链接】flipperzero-firmwareFlipper Zero firmware source code项目地址: https://gitcode.com/GitHub_Trending/fl/flipperzero-firmware

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询