01
概述
SSD1315是一款单芯片CMOS OLED/PLED驱动控制芯片,直接从内部128*64位GDDRAM中显示数据。
GDDRAM(Graphic Display Data RAM,图形显示数据RAM)。
GDDRAM是位映射静态RAM,保存要显示的位模式。RAM的大小为128*64位,又分为8页(PAGE0~PAGE7),用于单色128*64点阵显示。
当一个数据字节写入GDDRAM时,将当前列同一页的所有行图像数据全部填充(即填充列地址指针所指向的整列,8位)。D0数据位写在最上面一行,D7数据位写在最下面一行。
02
ssd1315基本命令
设置页寻址模式的列起始地址(00h~0fh、10h~17h)
00h~0fh该命令指定页面寻址模式的RDDRAM的8位列起始地址的较低部分(8位列地址的低四位)。列地址将随着每次数据访问而增加。
10h~17h该命令指定页面寻址模式的RDDRAM的8位列起始地址的较高部分(8位列地址的高四位)。列地址将随着每次数据访问而增加。
页寻址模式会讲到,这命令就会很清楚了。
设置页寻址模式的页起始地址(B0h~B7h)
该命令指定页面寻址模式的RDDRAM的页起始地址(PAGE0~PAGE7)。页寻址模式会讲到,这命令就会很清楚了。
设置内存寻址模式(20h)
3种内存寻址模式:水平寻址模式、垂直寻址模式、页寻址模式。
页寻址模式(A[1:0]=10b)
在页寻址模式下,在GDDRAM进行读写后会自动移向下一个COL,用户必须设置新的PAGE和COL地址才能访问下一个PAGE的内容。在页寻址模式下,PAGE的移动顺序和列地址方向如下图所示。(先确定PAGE,再确定COL,最后写入数据)
水平寻址模式(A[1:0]=00b)
在水平寻址模式下,在GDDRAM进行读写后会自动移向下一个COL。当列地址指针到达COL127时,列地址指针重置为COL0,页面地址指针加1。当列地址指针和页地址指针都到达结束地址时,指针被重置为PAGE0_COL0。
垂直寻址模式(A[1:0]=01b)
在垂直寻址模式下,在GDDRAM进行读写后会自动移向下一个PAGE。当页地址指针到达PAGE7时,页地址指针重置为PAGE0,列地址指针加1。当列地址指针和页地址指针都到达结束地址时,指针被重置为PAGE0_COL0。
03
组件的使用
1 Gitee链接地址
Demo位于amaziot_bloom_os_sdk\sample\3rd\3.1_SSD1315 Gitee源码地址:https://gitee.com/ning./hongdou Github源码地址:https://github.com/ayumid/hongdou 编译指令:.\build.bat -l .\amaziot_bloom_os_sdk\sample\3rd\3.1_SSD1315 |
2 组件功能介绍
驱动OLED显示图片,不同大小的汉字,字符,数字;画圆,画矩形,画线;OLED驱动使用SSD1315。任何品牌的OLED,只要是驱动芯片使用的SSD1315,都可以使用本驱动。驱动使用模拟spi实现。
使用SSD1315作为主控的OLED,硬件有两种接法,区别是是否使用DC引脚。使用DC引脚,需要主控来控制DC引脚确定当前发送的是命令还是数据,不使用DC引脚,需要主控在发送数据之前发送一个bit,来确定是命令还是数据,具体查看drv_ssd1315_wr_byte的实现。
3 代码讲解
1 drv_ssd1315_show_picture
功能:该函数用于,显示图片。
参数:
参数 | 释义 |
x,y | 起点坐标 |
sizex,sizey | 图片长宽 |
BMP[] | 要写入的图片数组 |
mode | 反色显示;1,正常显示 |
返回值:无
示例:
C |
2 drv_ssd1315_scroll_display
功能:该函数用于,滚动显示汉字。
参数:
参数 | 释义 |
num | 显示汉字的个数 |
space | 每一遍显示的间隔 |
mode | 0,反色显示;1,正常显示 |
返回值:无
示例:
C |
3 drv_ssd1315_show_chinese
功能:该函数用于,显示汉字。
参数:
参数 | 释义 |
x,y | 起点坐标 |
num | 汉字对应的序号 |
mode | 0,反色显示;1,正常显示 |
返回值:无
示例:
C |
4 drv_ssd1315_show_num
功能:该函数用于,显示数字。
参数:
参数 | 释义 |
x1,y1 | 起始坐标 |
x2,y2 | 终止坐标 |
color | 线的颜色 |
返回值:无
示例:
C |
5 drv_ssd1315_pow
功能:该函数用于,显示数字。
参数:
参数 | 释义 |
m | 底数 |
n | 指数 |
返回值:无
示例:
C |
6 drv_ssd1315_show_string
功能:该函数用于,显示字符串。
参数:
参数 | 释义 |
x,y | 起点坐标 |
size1 | 字体大小 |
*chr | 字符串起始地址 |
mode | 0,反色显示;1,正常显示 |
返回值:无
示例:
C |
7 drv_ssd1315_show_char
功能:该函数用于,在指定位置显示一个字符,包括部分字符。
参数:
参数 | 释义 |
x,y | 显示坐标 |
size1 | 选择字体 6x8/6x12/8x16/12x24 |
mode | 0,反色显示;1,正常显示 |
返回值:无
示例:
C |
8 drv_ssd1315_draw_circle
功能:该函数用于,画圆。
参数:
参数 | 释义 |
x,y | 显示坐标 |
r | 圆的半径 |
返回值:无
示例:
C |
9 drv_ssd1315_draw_line
功能:该函数用于,画线。
参数:
参数 | 释义 |
x1,y1 | 起点坐标 |
x2,y2 | 结束坐标 |
返回值:无
示例:
C |
10 drv_ssd1315_draw_point
功能:该函数用于,画点。
参数:
参数 | 释义 |
x,y | 显示坐标 |
t | 1 填充 0,清空 |
返回值:无
示例:
C |
11 drv_ssd1315_clear
功能:该函数用于,清屏。
参数:无
返回值:无
示例:
C |
12 drv_ssd1315_refresh
功能:该函数用于,更新显存到OLED。
参数:无
返回值:无
示例:
C |
13 drv_ssd1315_display_on
功能:该函数用于,开启OLED显示。
参数:
返回值:无
示例:
C |
14 drv_ssd1315_wr_byte
功能:该函数用于,发送一个字节的数据,注意硬件DC引脚有误,会根据宏定义DRV_SSD1315_USED_DC_PIN来控制使用哪种驱动实现方式。
参数:
参数 | 释义 |
dat | 数据 |
cmd | 命令 数据 |
width | 图片宽度 |
pic[] | 图片数组 |
返回值:无
示例:
C |
15 drv_ssd1315_display_turn
功能:该函数用于,屏幕旋转180度。
参数:
参数 | 释义 |
i | 0 正常显示 1 翻转180度 |
返回值:无u
示例:
C |
16 drv_ssd1315_color_turn
功能:该函数用于,反显函数。
参数:
参数 | 释义 |
i | 0 正常显示 1 反色显示 |
返回值:无
示例:
C |
4 Demo实战
4.1 创建一个Demo
复制20.1_file_xtu示例工程,到同一个文件夹下,修改文件名为3.1_SSD1315,如图:
4.2 修改makefile
增加文件组件所在目录头文件路径,和源文件路径,如图:
4.3 增加头文件
使用代码编辑器,将新建的工程文件加入代码编辑器中,打开main.c,修改main.c,加入am.h等头文件,如图:
4.4 修改代码
在Phase2Inits_exit 创建一个任务,如图:
4.5 宏定义介绍
输出日志到DEBUG 串口,日志比较少,可以输出到这个串口,如果日志比较多,需要输出到usb口,以免不必要的问题出现
输出日志到USB 串口,使用catstudio查看,catstudio查看日志需要更新对应版本mdb.txt文件,软件打开filtter过滤日志,只查看用户输出的日志
栈空间宏定义
4.6 全局变量介绍
任务栈空间,本例使用数组实现,用户在做项目时,可以预先估算下当先任务需要的大致栈空间,OS没有提供可以查看栈空间使用情况的API
任务指针
4.7 函数介绍
底层初始化,本例空
底层初始化,本例空
底层初始化,本例空
创建主任务,初始化消息队列,定时器,任务等。
代码片段:
C |
主任务,获取imsi,rsrq等参数信息。
代码片段:
C |
4.8 编译
在SDK根目录打开命令行,输入命令.\build.bat -l .\amaziot_bloom_os_sdk\sample\3rd\3.1_SSD1315\
C++ |
4.9 生成固件
参考入门中开发工具,生成工具。
4.10 测试
测试步骤:
注:本文部分内容来源于网络,如有侵权,请及时联系我们。
本文章源自奇迹物联开源的物联网应用知识库Cellular IoT Wiki,更多技术干货欢迎关注收藏Wiki:Cellular IoT Wiki 知识库(https://rckrv97mzx.feishu.cn/wiki/wikcnBvAC9WOkEYG5CLqGwm6PHf)
文章评论(0条评论)
登录后参与讨论