如何将μC/GUI移植在OLED12864上显示??
最近难得有时间休息,作为一个技术宅,也不能闲着是吧?于是乎花了一天的时间成功的将uCGUI移植在0.96寸单色OLED上显示。那么有的人该说了,它的分辨率只有128X64,没必要移植,呵呵,怎么说呢,在某些场合使用OLED非常合适。而且现在的OLED使用范围越来越广,所以研究下很有必要。
那么该如何移植呢?首先我们应该明白uCGUI的工作原理:就是不断地调用画点函数画出来各种字符,图片等等,这是最基本的函数之一,其次就是读点函数:读取某个位置点的颜色,状态等。有了这两个函数一切都非常的好办。
移植的总体步骤:
1、一个较好的硬件平台、正常显示的OLED源码、uCGUI
2、编写OLED的画点函数、读点函数、初始化函数
3、在uCGUI配置文件中更改相应的配置
4、移植成功。
这里我重点想讲一下如何编写OLED的画点函数、读点函数。
一般的OLED上没有这两个函数,反正我的OLED没有,那么为什么会这样呢??因为如果将那些功能函数都按照画点来写的话,OLED的显示比较缓慢,显然这是不合理的做法。那么我们就要自己编写这个函数了。
我在网上找了半天没找到,无奈只能知己写了,于是乎打开了OLED驱动芯片SSD1306的数据手册,不要多想,全部是英文,只能硬着头皮看了。
我们应该先明白SSD1306是如何工作的,下面看图:
上面的英文大概就是:GDDRAM是位图静态对应显示,128x64大小的RAM被分成8个页,从PAGE0~PAGE7,至于那个被用于显示,看下图: