|
本帖最后由 LZY825597017 于 2024-1-18 14:56 编辑
1.扩展库介绍
本扩展库适用于驱动芯片为SSD1306/SSD1106的OLED屏幕,驱动方式为IIC(软件),设备地址默认为0X3C(7位地址) ,请在使用本扩展库之前确定好自己所使用的OLED驱动型号是否对应。扩展库目前支持的分辨率有128*64、128*32以及74*40。
SSD1306的从机地址有 0111100b 和 0111101b 两种,通过将SA0(D/C#)脚上拉到高电平可以设置从机地址第七位为 1,将SA0(D/C#)脚下拉到低电平可以设置从机地址第七位为 0。通过SA0(D/C#)脚的上拉和下拉来设置从机地址(部分可以通过屏幕背面电阻调节),从而令总线上可以存在最多2个SSD1306驱动器。
注意:厂商不同,标识可能也会不同(IIC使用7位或者8位地址)
IIC(7位地址) IIC(8位地址)
0X3C 0X78
0X3D 0X7A
图形块需要传入的是7位IIC地址
图形化模块
(1)OLED初始化 SDA和SCL引脚(软件IIC),宽度(屏幕水平像素点数量)高度(屏幕垂直像素点数量),设备地址默认0X3C。使用前请注意引脚是否正确
(2)OLED初始化引脚(硬件IIC),设备地址默认0X3C
注意:CH32V003 :SDA->PC1 SCL->PC2
CH32V103 :SDA->PB6 SCL->PB7
TW32F003 :SDA->PA2 SCL->PA3
ASRPRO : SDA->PA2 SCL->PA3
(3)OLED清屏(不是屏幕清屏而是清空显存,亮:缓存写1,更新后,屏幕全亮;灭:缓存写0,更新后,屏幕全灭)
(4)OLED更新显示(将显存数据发送到屏幕,使用显示模块后必须调用更新显示,否则无法显示或者屏幕不刷新)
(5)OLED打印显示亮或灭(仅对打印有效)
(6)设置打印文本字体大小(可选12/16/24/32号字体,仅对打印有效)
(7)设置文本是否自动换行(开启:当文本快超出边界时,从下一行继续打印,仅对打印有效)
(8)设置光标位置(应当添加在打印以及显示汉字前)
(9)设置打印字符串等,可设置是否打印完成是否换行(字体大小受设置彩屏文本字体大小块限制)
(10)设置打印汉字,大小可选(12/16/24/32)
(11)显示图片,从(X,Y)开始显示指定长宽的图片(参入参数为数组指针)
(12)画点,在X,Y坐标上画一个的点(状态可选亮或灭)
(13)彩屏画线,从(X1,Y1)到(X2,Y2)坐标上画一根的线(状态可选亮或灭)
(14)画矩形或填充矩形,从左上顶点(X1,Y1)到右下顶点(X2,Y2)坐标上画一个或者填充矩形(状态可选亮或灭)
(15)画圆形或填充圆形,从圆心(X,Y)以指定半径画一个或者填充圆形(状态可选亮或灭)
(16)画三角形或填充三角形(状态可选亮或灭)
(17)画圆角矩形或填充圆角矩形(状态可选亮或灭)
2.扩展库范例-CH32V003
(1)硬件连接(CH32V003)
(2)范例(CH32V003)
显示图片请参考:https://haohaodada.com/new/bbs/f ... ead&tid=1153&extra=
手册资料: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即可。
5、使用显示函数时编译报错,如堆栈重叠时,使用const修饰数组尝试并再次编译。
OLED12864模块 SSD1106链接:https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-16095754988.25.338c78c5IG1xfU&id=655572167253
|
|