功率监测与控制系统DIY——实现OLED屏幕显示信息

  作者:CoderX9527 时间:2025-07-16来源:EEPW

1   任务目标

实现OLED 屏幕显示信息

2   OLED介绍

此款OLED是Seeed Studio 出品的Grove 接口的0.96英寸OLED 显示屏,驱动IC 为SSD1315.

OLEDDisplay 0.96” SSSD1315 V1.1分辨率为128×64。

供电为3.3 V 或者5 V,通信接口为I2C。

1752660559610148.png

考虑到电流表INA219也是I2C通信接口,在STM32开发板上使用同一组I2C 硬件,OLED和INA219配置不同的器件地址,就可以一个I2C控制器驱动两个I2C器件。

此开发板有Arduino接口,恰好把Seeed Base Shield扩展板接上。

1752660614452574.png

3   STM32 I2C配置

3.1 选用I2C1

1753082580101848.png

1752665013726317.png

Nucleo-F411RE管脚分配

3.2 STM32CubeMX工程配置

●   在Connecity 中选择I2C1

●   在右侧使能I2C

●   配置I2C 参数为Standard Mode,速率100 KHz,地址为7 比特,主要的从器件地址为0×78

1752665076520129.png

3.3 PB8配置为SCL

1752665129122692.png

3.4 PB9配置为SDA

1752665230614103.png

4   PCtoLCD汉字取模软件

此次任务在OLED 上展示中文字符如下:

1753082671177820.png

所有取模的文字:

1753082720985161.png

PCtoLCD2002软件配置如下:

●   点阵格式:阴码

●   取模方式:列行式

●   取模走向:逆向(低位在前)

●   自定义格式:C51 格式,且行前缀、行后缀都为空。

1752665418993763.png

1752665443771541.png

在输入框输入文字后点击“生成字模”,拷贝到工程中即可。

5 流程图

朴信惠.jpg

6   关键代码

6.1 主函数

●   HAL库初始化

●   时钟初始化

●   硬件初始化,如GPIO,TIM,UART,I2C 等

●   OLED 初始化,清屏

●   显示界面,界面切换,死循环

1753082875127790.png

1753082945884734.png

6.2 I2C 初始化

这里的初始化代码是STM32CubeMX生成的,初始化参数来自界面配置的参数。

●   函数MX_I2C1_Init() 先保存I2C 参数到hi2c1 结构体上,调用HAL_I2C_Init() 初始化硬件

●   函数HAL_I2C_MspInit() 由HAL_I2C_Init() 函数调用,初始化I2C1 管脚,配置为复用功能

1753083012578850.png

1753083098685827.png

6.3 OLED接口函数

OLED接口层,主要实现两个函数,其他的OLED API都是依赖这两个函数

●   Oled_Write_Data() 发送数据到OLED IC

●   Oled_Write_Cmd() 发送命令到OLED I

6.3.1 Oled_Write_Data() 实现

这里直接调用HAL API 往OLED 发送数据

1753083159416713.png

6.3.2 Oled_Write_Cmd()实现

这里直接调用HAL API往OLED发送命令

1753083197904297.png

6.4 OLED API

这里仅列举几个常用的API 实现。

6.4.1 OLED_Init()初始化

OLED 上电后需要发送命令配置参数

1753083321209094.png

1753083451431875.png

1753083531317178.png

1753083679316770.png

1753083711137821.png

6.4.2 OLED_Fill()刷屏

m表示page地址,数值0~7,n 表示列地址,数值0~127。

填充的数据fill_data,设置为0,则屏幕为黑色;设置为1,则屏幕白色;设置为其他值,屏幕显示条纹。

1753083782102505.png

6.4.3 OLED_ShowStr()

这里支持两种字体大小,分别是6×8 和8×16 大小。

1753083823132958.png

1753083933763272.png

1753083961979718.png

6.4.4 OLED_ShowCN()

这里只支持一种中文字体大小,16×16。

1753084011157843.png

1753084040631005.png

7   实操演示

显示中文欢迎界面

1752666366835565.png

显示英文欢迎界面

1752666650152621.png

显示功率检测界面,其中的电压、电流和功率数值是预设值,并非实际测量的。

1752666281268787.png

(本文来源于《EEPW》202507)

关键词: 202507 功率监测 屏幕显示 OLED

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版