- 主控芯片:STM32F103C8T6(最小系统板)
- OLED模块:0.96寸屏幕
- 连接方式:
- SCK → PB6(I2C1_SCL)
- SDA → PB7(I2C1_SDA)
- VCC → 3.3V
- GND → GND
最终实现效果
一、选择GIF图片
最近很火的月薪喵表情包第1弹_喵御宅_MFuns_兴趣至上的二次元社区
网上GIF动图搜索月薪喵很多,可以选择自己喜欢的,然后下载GIF格式,建议放在桌面
二、GIF图转换keil代码
GIF image2cpp - 128x64 OLED
GIF动图转换工具,借助大佬开源的网页工具,可以快速完成代码编写
工具选择:使用基于浏览器的128×64 OLED GIF to Array工具,该工具可将 GIF 图像在本地拆分为单帧并转换为 C 语言数组。
参数配置(自动配置不用动手):
- 画布尺寸:设置为
128 × 64 px,与 0.96 寸 OLED 屏幕分辨率匹配; - 背景色:设置为白色,与 OLED 显示逻辑兼容;
- 缩放方式:
fit to 128x64,确保 GIF 图像完整适配屏幕; - 代码输出格式:
Arduino code(可直接复制为标准 C 数组格式) - 绘制模式:
Horizontal - 1 bit per pixel,适配常见的 OLED 水平扫描方式。
①点击选择文件——选择刚刚保存的GIF动图![]()
②打开后下面都保持不变![]()
③GIF 图像转单色位图数组(等下需要用到)
④工具根据 GIF 的 28 帧位图数组,自动生成了完整的 OLED 显示代码(等下需要用到)
三、软件配置(Keil MDK)
GitHub - 谢林雷/OLED_Display:STM32F103C8T6标准外设库OLED显示项目·GitHub
本项目基于Keil uVision5开发环境,使用谢林雷开源的OLED_Display项目作为基础工程,实现 STM32F103C8T6 的 OLED 驱动开发。
开发环境说明
选用 Keil MDK 作为编译与调试工具,其对 STM32 系列单片机提供了完善的支持,可方便地进行代码编写、编译与下载。
工程搭建方式
对于有基础的开发者,可新建工程并自行编写oled.c、oled.h驱动文件,再结合main.c实现功能;
为降低开发门槛,本项目直接使用开源的 OLED 显示工程作为模板,在此基础上添加 GIF 动画播放的逻辑代码,快速完成二次开发。
①搜索网页并点击绿色代码出找到最下面下载Zip压缩包![]()
②找到自己下载的Zip文件并且解压至本文件夹
③打开OLED_Display-main并用keil打开OLEDTest![]()
④找到文中注释:粘贴生成的数组BEGIN![]()
返回网页
点击复制输出
回到注释中间粘贴
⑤同上,找到while(1)后的:粘贴生成的OLED display code BEGIN
返回网页
找到OLED display code复制代码
回到注释中间粘贴
四、硬件烧录
①找到keil上方魔术棒并打开
②找到Debug——Use:选择ST-Link DeBugger(这一步很关键,不选择无法连接STM32最小系统板)
③OK,返回找到图标
点击编译一下
找到
完成烧录
编译生成的程序通过 Keil MDK 下载至 STM32F103C8T6 单片机,下载过程日志显示:
Full Chip Erase Done.:芯片 Flash 已完成整片擦除;Programming Done.:程序已成功写入 Flash;Verify OK.:写入数据校验无误;Application running ...:程序已正常启动并运行。
这表明工程编译无错误、下载流程完整,单片机已按照程序逻辑执行 OLED 动画播放任务。
到这里就结束了》》》
如果OLED没有显示,可以按一下最小系统板上面的复位按钮
致谢
本项目的 OLED 驱动工程与 GIF 转数组工具参考并使用了谢林雷、解林磊的开源项目,以及铁头山羊STM32新版4.8源码在此对原作者的无私分享表示感谢。