
首先建个显存数组,将要显示的数据写入显存里,再将整个显存通过显示图片的方式写入5110的RAM里显示就OK啦!我的12864OLED也读不出内部的DDRAM,但我刚用这种方法给12864OLED打点了。
unsigned char xdata memory[128] //显存
//在随意坐标上画点
void OLED_Drawpoint(unsigned char x, unsigned char y,bit dat)
{//x,y,行列坐标;dat,1写,0擦除
unsigned char rdata
rdata=memory[y/8*128+x] //先将对应的字节数据从显存数组读出来
if(dat==1){
memory[y/8*128+x]=rdata|(0x01<<(y%8))//将读出来的数据加上添加点的数据
}
else{
memory[y/8*128+x]=rdata-(0x01<<(y%8))
}
}
OLED_DrawBMP(0,0,128,8,memory)//(显示图片函数)将显存的数据导入显示屏
在我经历的IoT项目中,上图中的这个屏是我最喜欢的一种了,接过显示屏的都该对它们各种复杂的接线感到崩溃吧,由其是并行式的屏幕。这个OLED冷光屏( 型号 SSD1306 )却是个例外,它有I2C和SPI两种接口这就意味着我们只要接很少的线就能将它给驱动起来。
不要因为这个屏幕只有一寸不到的面积就认为它只能显示很少的内容,它的驱动可是可以支持编写出多屏滑动界面的,这样就可以极大地扩充了显示空间。它的成本也就20来块钱左右,可以说是小型IoT设备的首选级显示模块了。
接下来,我就简单介绍一下如何在ESP8266中来使用它吧。
首先要为项目安装SSD1306的驱动库,在项目目录下的命令行内运行的以下指令:
我的屏是I2C版本的,具体连接方法如下:
首先,由于这个板子有I2C和SPI两个版本,所以在实例化时有一点区别:
I2C
** SPI **
库说明:
流程:
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)