LZY825597017 发表于 2023-10-27 14:45:24

SSD1306/SSD1106-STC系列

本帖最后由 LZY825597017 于 2024-1-18 14:48 编辑

1.扩展库介绍

本扩展库适用于驱动芯片为SSD1306/SSD1106的OLED屏幕,驱动方式为IIC(软件),设备地址默认为0X3C ,请在使用本扩展库之前确定好自己所使用的OLED驱动型号是否对应。为方便扩展库统一管理,STC系列OLED12864等扩展库不再维护,扩展库目前支持的分辨率有128*64、128*32以及74*40。

图形化模块

(1)OLED初始化 SDA和SCL引脚(软件IIC),设备地址默认0X3C。


(2)OLED清屏(不是屏幕清屏而是清空显存,亮:缓存写1,更新后,屏幕全亮;灭:缓存写0,更新后,屏幕全灭)


(3)OLED更新显示(将显存数据发送到屏幕,使用显示模块后必须调用更新显示,否则无法显示或者屏幕不刷新)


(4)OLED显示字符(在屏幕坐标为(X,Y)的位置显示单个字符,大小可调整(12/16/24/32))(亮:显示字符亮,若背景灭时就能显示,若背景亮时就看不出来字符,范例演示区别)
注意:使用不同的字体大小需要开启不同的字库(字库会占用很多内存空间),因此尽量使用相同字体大小,否则可能会出现内存不够的情况,后续不再赘述
这里的X范围为(0-127)Y范围(0-63)


(5)OLED显示字符串(在屏幕坐标为(X,Y)的位置显示开始字符串,大小可调整(12/16/24/32))


(6)OLED显示数字(在屏幕坐标为(X,Y)的位置显示开始数字,大小可调整(12/16/24/32))


(7)OLED显示小数(在屏幕坐标为(X,Y)的位置显示开始小数,精度可调(1-4),大小可调整(12/16/24/32))


(8)OLED显示汉字(在屏幕坐标为(X,Y)的位置开始显示汉字),大小可调整(12/16/24/32))


(9)OLED画点(在屏幕坐标为(X,Y)的位置显示/不显示一个点)



(10)OLED画线段/矩形框/填充矩形 (线段起点(X1,Y1)线段终点(X2,Y2))(矩形框起点即左上角位置(X1,Y1),矩形框终点即右下角位置(X2,Y2))


(11)OLED画圆/填充圆 (以(X,Y)为圆心,指定半径画圆或者填充圆)


(12)OLED画三角形/填充三角形 (三角形三个点(X0,Y0)、(X0,Y0)、(X0,Y0))


(13)OLED画圆角矩形/填充圆角矩形(矩形框起点即左上角位置(X1,Y1),矩形框终点即右下角位置(X2,Y2),圆角半径以顶点开始算)
旧版取模方式:


旧版(各芯片版本不同,新旧区分请查看源码,旧版图片y轴不可移动):(14)OLED显示图片 (从(X,Y)位置开始显示指定宽度和高度的图片,首个参数为显示的图片数组指针)
新版:

(15)OLED显示图片(X,Y)位置可移动并添加超界判断,超出界限直接忽略。
新版取模方式:

2.扩展库使用范例
(1)硬件连接

(2)范例

两种显示模式仅是显示效果不同。上面初始化显示字符等,下面初始化显示图片

显示图片参考:https://haohaodada.com/new/bbs/f ... ge=1&extra=#pid2996

手册资料:http://www.haohaodada.com/new/learning_show.php?id=272

常见问题与注意事项
1、连接线路检查,杜邦线等确定能正常使用。
2、驱动方式为软件IIC,需要上拉电阻,否则可能无法显示。
3、显示内容超出界限。X(0-127)Y(0-63)
4、某些IO被用作特殊功能,如串口、SWIO等,不能用作SDA和SCL。如有需要可以关闭特殊功能,复用成普通IO即可。

OLED12864模块 SSD1106链接:https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-16095754988.25.338c78c5IG1xfU&id=655572167253






13702513304 发表于 2023-10-31 21:45:12

E:\备份资料\截屏\025.jpg请问版主编译不过关,有错误提示是什么原因呢?

13702513304 发表于 2023-10-31 21:47:47

编译报错,我发表的回复好像不能显示。

zy405891497 发表于 2023-11-2 19:56:00

我用stc8h1k08的芯片测试,其它的都能显示,唯独数字和小数点不显示是怎么回事?

LZY825597017 发表于 2023-11-8 13:54:06

13702513304 发表于 2023-10-31 21:45
请问版主编译不过关,有错误提示是什么原因呢?

什么错误提示那?

LZY825597017 发表于 2023-11-8 13:57:16

13702513304 发表于 2023-10-31 21:47
编译报错,我发表的回复好像不能显示。

编译报错提示信息是什么那?

LZY825597017 发表于 2023-11-8 13:59:14

zy405891497 发表于 2023-11-2 19:56
我用stc8h1k08的芯片测试,其它的都能显示,唯独数字和小数点不显示是怎么回事?
...

那试一下最新版的SSD1306,并且不要使用文本连接

659630366 发表于 2024-1-10 13:49:39

这个OLED库的显示图片函数有问题,只能显示起始坐标X=0,Y=0,的全屏图片,如果图片不是全屏的,或者起始坐标XY不是0,显示就有问题,代码太简陋了

LZY825597017 发表于 2024-1-18 14:41:43

659630366 发表于 2024-1-10 13:49
这个OLED库的显示图片函数有问题,只能显示起始坐标X=0,Y=0,的全屏图片,如果图片不是全屏的,或者起始坐标 ...

已经修复y轴不能移动的问题,您可以使用最新版本,取模方式一并修改

atzs32359164 发表于 2024-2-5 22:21:23


页: [1] 2
查看完整版本: SSD1306/SSD1106-STC系列