今天来说一说OLED,也同时记录一下成果。
在学习OLED之前需要知道IIC协议,不了解的可以看(IIC协议相关_dxdlnu的博客-CSDN博客)
什么是OLED? OLED_百度百科 (baidu.com)
一.OLED写入指令和数据
因为OLED是有写入指令/数据的操作的,至于为什么有在后面编写程序的时候就能知道。
先看一下如何写入指令和数据?
CO和D/C说明如下:
根据协议图,封装一个写入指令的函数:
封装一个写入数据的函数:
**********87行有误应该是0x40写入数据
二.OLED显示一个点的思路及代码实现
首先思考,一个OLED屏有那么大,我们如何在一个自己想要的地方显示一个点呢?这就先要解决,OLED显示方式的问题。
首先我们要了解OLED显示屏它的构成:
我们可以看到,这里Page共有8行,并且每一个Page里有8位(bit),也就是一个Page的一列代表一个字节。
大致了解之后我们看看OLED如何寻址呢?
这里有三个寻址方式(前两种最常见),图还是比较形象的不做过多解释。
如何在Keil中设定自己想要的寻址模式?
比如这里我们想要定为页寻址模式,我们可以在代码的发送cmd并写入0x20,再发送0x02,成功进入页寻址模式。
接下来用代码实现一个点。
在OLED上显示一个点主要就是这三大步
以下对代码逐行分析:
141行.首先是初始化Init,这个手册里有,直接cv过来就好(我们的Cmd和Data函数已经写好了)
142.行选择一个位置