按你那样写肯定有问题,你没搞懂12864的画图功能。
画图时,扩展指令要开(但是画图指令要在函数写结束时才能开)12864内部的地址计数器(AC)只会对水平地址自动加1,不会对垂直地址做进位自动加1,所以代码可以这样写
//*******显示上半屏内容设置
void disp_picture(uchar code *adder)
{
uint i,j;
for(i=0;i<32;i++)
{
write_com(0x80 + i); // 垂直地址
write_com(0x80); // 水平地址
for(j=0;j<16;j++) //X坐标方向以2字节为单位,Y坐标方向以1位为单位,先连续写入垂直与水平坐标,
{ //再写入两字节数据到GDRAM。比如i=0时,j=0,1.就把两字节的数据写进去了,然后X轴加1,一直到7,同时for循环结束,然后写第二行。
write_data(*adder);
adder++;
}
}
write_com(0x36); //打开绘图显示
write_com(0x30); //回到基本指令
}
下半屏的同理。
|