📌
基于STM32 HAL库的0.96/1.3寸OLED I2C驱动程序,支持硬件I2C和软件I2C,支持UTF-8和GB2312,软硬件I2C适配部分来自于zeruns,代码功能主体部分来自于江协科技的OLED驱动程序V2.0版本,工程代码由STM32MXCube生成。
 
以下为本文章代码github仓库
STM32-OLED-SSD1306-I2C-HAL
qlqqs • Updated Sep 5, 2025
本工程可用Keil5打开。
 
所有工程文件采用UTF-8编码。如遇乱码,请将编辑器编码设置为UTF-8。
 
如需使用GB2312,请自行将使用OLED_GB2312内的代码文件。

使用说明

导入模块

OLED.c
qlqqs
OLED.h
qlqqs
OLED_Data.c
qlqqs
OLED_Data.h
qlqqs

硬件I2C

步骤一:STM32CubeMX配置I2C
启用相应I2C外设,将速度模式设为 Fast Mode。其他设置保持默认。
notion image
步骤二:将I2C的GPIO标签(User Label)分别更改为I2C_SCL和I2C_SDA
notion image
步骤三:在OLED.h文件中
  1. 注释 #define OLED_USE_SW_I2C,取消注释 #define OLED_USE_HW_I2C
  1. 修改红框内相应定义
notion image

软件I2C

步骤一:STM32CubeMX配置:选择两个引脚作为I2C的SCL和SDA信号线。将IO口的 User Label 分别设为I2C_SCL和I2C_SDA。IO模式设为开漏输出,默认输出高电平,上拉输出,速度设至最高。如下图所示。完成后,点击生成代码。
notion image
步骤二:在OLED.h文件中,注释 #define OLED_USE_HW_I2C,取消注释 #define OLED_USE_SW_I2C。如使用其他引脚作为I2C引脚且定义了不同名称,请相应修改代码中的 I2C_SCL 和 I2C_SDA。
notion image
 

测试代码

需要在main.c中添加如下代码

1. 导入头文件

2. 初始化OLED

3. 添加测试代码

 

📎 参考文章

STM32G4-OLED-SSD1306-I2C-HAL
zeruns • Updated Aug 22, 2025
 
 
 
STM32CubeMX代码添加printf函数支持1Panel通过反向代理搭建mailu
Loading...