首先建个显存数组,将要显示的数据写入显存里,再将整个显存通过显示图片的方式写入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)//(显示图片函数)将显存的数据导入显示屏
1.确定电路连接是否正确2.确定电源是否正常,复位是否正常,D/C使能是否正常
3.确定SPI的是否有输出
在初始化SPI后加入下面语句,用示波器测量MOSI,SCK,是否有输出,数值是否正确,触发波形是否正确(一般是SCK上升沿输入MOSI数据)
while(1)
{
LCD_WrDat(0xca)
}
4.OLED初始化是否正确
详细参考:
http://blog.csdn.net/wisepragma/article/details/26968093
根据液晶屏所使用的控制器不同而有所区别,通常12864的控制器有KS0107/KS0108, ST7920, 早期的12864还有使用T6963的,相同控制器的接口定义及功能都是基本相同的,只是管脚顺序不同,以上都是针对COB,SMT封装而言的。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)