华为云码道(CodeArts)代码智能体 + SKILL完成在星闪开发板上显示中文字体
本文介绍了使用chinese-font-ssd1306工具在星闪开发板上实现中文字体显示的方法。该工具能将系统字体转换为SSD1306 OLED显示屏所需的点阵数据C代码,支持中英文混合显示和多种字体样式。案例包含环境准备、工具安装配置、字体转换及开发板应用等完整流程,重点解决了嵌入式设备资源限制下的字体显示问题。通过华为云码道(CodeArts)代码智能体,开发者可快速生成适用于WS63等开发板
目录
一、概述
1.1 案例介绍
本案例将基于AI IDE华为云码道(CodeArts)代码智能体构建在星闪开发板上显示中文字体的助手。本案例所介绍 chinese-font-ssd1306 skill工具将系统字体转换为 SSD1306 OLED 显示屏所需的点阵数据 C 语言代码。该工具支持中英文混合显示,可自定义字体名称、大小和风格,特别适合嵌入式 OLED 显示项目开发。通过本案例,开发者可以快速为自己的嵌入式项目生成美观的中文字体显示数据。理论上,该工具不仅能够用于星闪WS63开发板,也可以用于其他MCU。
1.2 适用对象
- 企业开发者
- 个人开发者
- 高校学生
1.3 案例时间
本案例总时长预计30分钟。
1.4 案例流程

说明:
- PC本地下载安装AI IDE,完成Windows版AI IDE华为云码道(CodeArts)代码智能体安装部署。
- 在AI IDE华为云码道的项目级SKILLs配置chinses-font-ssd1306 ,构建中文字体转换助手;
- 与华为云码道对话,调用chinses-font-ssd1306,完成中文字体的显示。
1.5 资源总览
本案例使用的资源均为免费资源。
| 资源名称 | 规格 | 单价(元) |
|---|---|---|
| 华为云码道(CodeArts)代码智能体 | 通用体验版 | 免费 |
| chinese-font-ssd1306 工具 | 开源工具 | 免费 |
二、环境和资源准备
2.1 准备开发环境
参考案例《AI IDE华为云码道(CodeArts)代码智能体安装部署》完成华为云码道(CodeArts)代码智能体Windows版AI IDE安装部署。
参考文档HiSpark Studio插件版本环境搭建构建星闪WS63开发板的开发环境。
2.2 安装依赖
chinese-font-ssd1306 工具依赖 Python 3.x 和 Pillow 库,执行以下命令安装:
pip install Pillow
2.3 下载工具源码
通过 git 下载源码到本地,代码仓地址:https://gitcode.com/zealsoft/chinese-font-ssd1306.git
git clone https://gitcode.com/zealsoft/chinese-font-ssd1306.git
cd chinese-font-ssd1306

2.4 华为云码道配置SKILL
-
在码道右上角打开设置,进入设置界面后选择技能与规则,在项目级板块下技能的右侧点“+ 新建”。编辑技能名称(样例:chinese-font-ssd1306),然后点确定。

-
点确定后,系统自动在当前目录下创建.codeartsdoer/skills/chinese-font-ssd1306目录,并在该目录下新建了一个SKILL.md文件。
-
将“2.3 下载工具源码”中下载文件替换/拷贝到.codeartsdoer/skills/chinese-font-ssd1306目录下,系统将自动加载至项目级SKILL。
三、chinese-font-ssd1306工具的介绍
3,1 工具简介
在 SSD1306 OLED 开发中使用汉字点阵转换工具,核心目的是解决嵌入式设备的显示资源限制,实现高效、精准的图形 / 文字渲染,具体原因可分为以下 4 个核心维度:
嵌入式系统(如 WS63、STM32、ESP32、Arduino)的 Flash 和 RAM 资源通常十分有限(KB 级或 MB 级):
- 一个 16x16 的汉字,转换为点阵后仅占用 32 字节(16×16÷8),而如果保存整个字库可能需要数M字节;
- 点阵数据为纯静态数组,可直接存入 Flash 中,运行时无需动态分配内存,避免内存溢出风险。
SSD1306 屏幕分辨率低(常见 128×64),点阵工具可自定义取模规则(如列行式、水平扫描),确保生成的数据与驱动库完全兼容,避免文字 “错位”“颠倒”。• 点阵工具支持批量转换,可一次性生成多个汉字的点阵数据,直接复制到代码中使用;生成的 C 语言数组可跨平台复用(如从 WS63 移植到 STM32),无需因硬件平台更换而重新调整显示逻辑。
点阵转换工具本质是 “通用字体→嵌入式专用点阵” 的桥梁,其核心价值是在嵌入式系统的资源限制与显示需求之间找到平衡,既保证了运行效率,又简化了开发流程,是 SSD1306 等点阵式 OLED 开发的必备工具。
3.2 工具结构说明
项目结构如下:
chinese-font-ssd1306/
├── README.md # 说明文档
├── SKILL.md # Skill 主文档
├── scripts/
│ └── font_converter.py # 字体转换脚本
└── references/
└── ssd1306_guide.md # SSD1306 技术参考
3.3 基本使用方法
命令行参数
| 参数 | 说明 | 默认值 |
|---|---|---|
-t, --text |
要转换的文本 | - |
-i, --input |
输入文本文件路径 | - |
-o, --output |
输出 C 代码文件路径 | font_data.c |
-f, --font |
字体名称 | 宋体 |
-s, --size |
字体大小(16-64) | 16 |
--bold |
使用粗体 | False |
--italic |
使用斜体 | False |
--prefix |
数组名前缀 | font_data |
基本示例
# 转换文本,使用默认宋体 16x16
python scripts/font_converter.py -t "你好世界" -o font_data.c
# 使用微软雅黑,32x32 大小
python scripts/font_converter.py -t "你好世界" -f "微软雅黑" -s 32 -o font_data.c
# 使用粗体
python scripts/font_converter.py -t "你好世界" --bold -o font_data.c
3.4 多字体支持
当需要在同一项目中使用多种字体时,使用 --prefix 参数为每种字体指定不同的前缀:
# 生成宋体字体数据
python scripts/font_converter.py -t "春暖花开" -f "宋体" -s 32 --prefix "songti" -o font_songti.c
# 生成仿宋字体数据
python scripts/font_converter.py -t "安康顺遂" -f "仿宋" -s 32 --prefix "fangsong" -o font_fangsong.c
3.5 生成的 C 代码结构
生成的 C 代码包含以下部分:
- 字符信息结构体:包含 Unicode 编码、宽度、高度和数据指针
- 字符数据数组:每个字符的点阵数据
- 字符索引表:所有字符的查找表
- 查找函数:根据 Unicode 编码查找字符数据
示例代码结构:
// 字符信息结构体
#ifndef CHARINFO_DEFINED
#define CHARINFO_DEFINED
typedef struct {
uint16_t char_code; // Unicode编码
uint8_t width; // 字符宽度
uint8_t height; // 字符高度
const uint8_t *data; // 点阵数据指针
} CharInfo;
#endif
// 字符数据数组
const unsigned char songti_char_0000[128] = { ... };
// 字符索引表
const CharInfo songti_chars[4] = {
{ 0x6625, 32, 32, songti_char_0000 },
...
};
// 查找函数
const CharInfo* songti_find_char(uint16_t code) { ... }
3.6 支持的字体列表
3.6.1 中文字体
| 字体名称 | 文件名 | 说明 |
|---|---|---|
| 宋体 | simsun.ttc | 默认字体,适合一般显示 |
| 黑体 | simhei.ttf | 粗体风格,适合标题 |
| 微软雅黑 | msyh.ttc | 现代风格,显示清晰 |
| 楷体 | simkai.ttf | 手写风格 |
| 仿宋 | simfang.ttf | 传统风格 |
3.6.2 英文字体
| 字体名称 | 文件名 | 说明 |
|---|---|---|
| Arial | arial.ttf | 无衬线字体 |
| Times New Roman | times.ttf | 衬线字体 |
四、在WS63开发板上显示中文字体
-
返回华为云码道对话界面,输入如下问题:“复制application\samples\peripheral\helloworld_oled到application\samples\peripheral\qingming,将qingming工程加入到系统的配置文件,使用chinese-font-ssd1306工具将显示内容改为宋体的“春暖花开”和仿宋体“安康顺遂”,均为32*32。”

-
等待码道自动生成。

-
进入HiSpark的系统配置页面,选中Qingming例程,并保存。

-
使用HiSpark的“编译”工具编译工程

-
使用HiSpark的“烧录”工具下载程序

-
程序烧录成功后,开发板会显示中文字体。

五、常见问题
5.1 字体显示方向错误
本工具生成**水平字节排列(Row-major)**格式的点阵数据。如果显示方向错误,请检查您的 SSD1306 驱动是否支持此格式。也可以让华为云码道修复显示代码以适应开发板驱动程序
5.2 如何减少数据量
解决方案:
- 只包含实际需要的字符
- 使用较小的字体大小
- 分多个文件按需加载
【案例共创】【第10期】华为云码道(CodeArts)代码智能体 + SKILL完成应用开发/调试实践https://bbs.huaweicloud.com/forum/thread-0212720921179660512-1-1.html
更多推荐



所有评论(0)