资讯动态

3步点亮OLED中文屏:u8g2_wqy中文字体库快速上手与选型全攻略

发布时间:2026/8/20 15:54:16 来源:尧图企业网站定制
3步点亮OLED中文屏u8g2_wqy中文字体库快速上手与选型全攻略【免费下载链接】u8g2_wqy适合 u8g2 的中文字体采用文泉驿点阵宋体作为源本提供 12x12、13x13、14x14、15x15 和 16x16 点阵字库。项目地址: https://gitcode.com/gh_mirrors/u8/u8g2_wqyOLED屏幕上显示一行英文很简单可当你想让它说出当前温度25.5℃时屏幕往往会回敬你一排整整齐齐的豆腐块。u8g2_wqy中文字体库正是为破解这一尴尬而生的它以文泉驿点阵宋体为源本为u8g2图形库提供 12x12、13x13、14x14、15x15、16x16 五档点阵、六套字符集的中文显示方案让嵌入式设备显示汉字像显示英文一样轻松。无论你是刚点亮第一块屏幕的新手还是正在为Flash空间精打细算的老手这篇文章都能帮你快速上手并做出明智的字体选型。一、先搞懂为什么汉字会变成豆腐块u8g2本身并不歧视中文问题出在字库上。默认情况下u8g2自带的英文字体只收录了 ASCII 字符也就是数字、字母和常用符号。当你把中文字符串丢给drawStr()时图形库按编码去字体表里查字形查不到就画一个空心方块交差——这就是豆腐块的由来。结论很简单想让中文显示出来就得给 u8g2 配一份认识汉字的字体数据。u8g2_wqy 干的正是这件事它把文泉驿点阵宋体转成了 u8g2 能直接识别的字体数组并帮你提前按常用程度切好了六种套餐。二、快速上手指南3步让屏幕开口说中文整个接入过程比想象中短三步就能跑通。第 1 步把字体库请进工程git clone https://gitcode.com/gh_mirrors/u8/u8g2_wqy克隆后把src/目录下的u8g2_font_wqy.c和u8g2_wqy.h一起加入你的编译工程并在代码里包含头文件。头文件里已经替你做了一件事自动定义U8G2_USE_LARGE_FONTS确保大字体数据能被正常编译进程序。第 2 步选中一套字体u8g2.setFont(u8g2_font_wqy12_t_chinese3);第 3 步直接画字符串u8g2.drawStr(0, 0, 你好世界); u8g2.sendBuffer();编译烧录屏幕上的豆腐块就变成了方方正正的汉字。整个过程中你不需要关心字形数据长什么样setFont之后的中文字符串会自动按 UTF-8 编码完成查表渲染。三、一库六档字符集选择困难症的福音上手容易真正让人纠结的是该用哪一套。u8g2_wqy 把字符集分成了六个档位覆盖了从省到极致到一个不落的全部需求字体字符数12pt 占用定位u8g2_font_wqy12_t_chinese14119,491 B最常用汉字极小成本u8g2_font_wqy12_t_chinese257413,701 B日常用语扩展u8g2_font_wqy12_t_chinese399325,038 B存储与覆盖的平衡点u8g2_font_wqy12_t_gb2312a4,041111,359 B正文汉字区无全角标点u8g2_font_wqy12_t_gb2312b4,531120,375 B比 a 档多一批符号u8g2_font_wqy12_t_gb23127,539208,228 B完整 GB2312 简体中文集两个细节值得记住chinese1、chinese2、chinese3是 u8g2 官方认可的小字符集来源可靠适合功能单一的小项目。gb2312系列则覆盖 GB2312 简体中文字符编码全集官方文档、完整界面都靠它们兜底。四、五档点阵尺寸清晰度与空间的博弈同一种字符集u8g2_wqy 还提供了五种点阵规格对应字体名的数字部分点阵推荐屏幕直观感受12x12128x32 小屏紧凑省空间信息密度高13x13128x64 标准屏日常够用性价比之选14x14128x64笔画更稳观感舒适15x15160x128细节渐丰富16x16160x128 及以上最饱满阅读最舒服同样一套 gb2312 全字符集12pt 约 208KB16pt 则膨胀到约 318KB——尺寸每升一档存储成本同步上涨。所以别盲目追求大字号先看屏幕物理分辨率64px 高的屏幕用 12~13pt 能放下三四行视觉已经很协调。五、实战选型按 Flash 空间做决策把上两节的表格合起来看选型思路其实很清晰MCU Flash 只有 128KB 左右优先chinese19.5KB或chinese2把资源留给业务代码。做温湿度计、闹钟这类界面411 个常用汉字通常足够覆盖所有界面文案。Flash 在 256KB~1MB上chinese3或gb2312a界面可以写得更从容支持多页面菜单。Flash 充足且要全都要直接选gb2312全字符集输入什么都能显示不再担心缺字。一条铁律先量 Flash再选字体。字体数据是纯静态数组编译后永久占用 Flash 而不占 RAM所以规划时看的是存储余量。建议在项目开发前就定好字体档位并预留 20% 以上的空间给后续功能扩展。六、进阶玩法从 bdf 到 map定制专属字库如果你觉得六档还不够u8g2_wqy 连重制字库的原料都给你备好了整个流程在仓库里就能完成bdf/目录放着文泉驿点阵宋体的 BDF 源文件从 9pt 到 13px 共五份这是字形的原材料。maps/目录是字符映射表每一行一个 Unicode 码位决定最终字库收录哪些字符。genmaps.sh脚本负责从gb2312.txt文本重新生成映射表链路完整可复现。想只保留系统、温度、报警等固定字串你可以编辑 map 文件只留下需要的码位再用 bdfconv 工具重新转换就能得到一份体积更小、完全贴合项目的定制字体。这套源文件 → 映射表 → 字库的流程也是理解 u8g2 字体机制的绝佳教材。七、避坑指南四个容易踩的坑坑 1gb2312a 没有全角标点。这套字库特意省掉了全角符号、、这类字符查不到字形。对策很简单文案里统一用半角!、?、,UI 上几乎看不出差别。坑 2gb2312b 存在空区。它覆盖 01 到 55 区编码但 10 到 15 区是空区不要依赖这个区间的字符。坑 3混排注意换行高度。中文是方块字行高按字号走和英文混排时建议统一用setFontPosTop()控制基线避免文字高低错落。坑 4别在 RAM 里折腾字体。大字号 gb2312 有数百 KB务必让它留在 Flashprogmemu8g2_wqy.h里已为 AVR 和 ESP8266 做好了段属性处理正常包含即可不要手动拷贝到 RAM。八、写在最后从一行豆腐块到整齐的中文界面u8g2_wqy 把嵌入式显示中文从一道门槛题变成了选择题——选尺寸、选字符集、接上、烧录三步搞定。它既照顾了 128KB Flash 的入门 MCU也覆盖了追求完整字库的产品级需求还保留了从 bdf 重新定制字库的进阶空间。如果你正卡在 OLED 中文显示上不妨今天就按文章里的三步试一次先选chinese3跑通再按 Flash 余量决定要不要升级到完整 GB2312。屏幕亮起中文的那一刻你会觉得这一切都值得。【免费下载链接】u8g2_wqy适合 u8g2 的中文字体采用文泉驿点阵宋体作为源本提供 12x12、13x13、14x14、15x15 和 16x16 点阵字库。项目地址: https://gitcode.com/gh_mirrors/u8/u8g2_wqy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价