中某园的库函数中没有给出局部清屏或刷新的函数,仅有全屏刷新void OLED_Clear(void)
由于驱动芯片的限制,局部清屏在y轴上的最小分度为8,在x轴上可以一个点一个点的清
从void OLED_Clear(void)可以看出来,在y轴上只循环了八次
//清屏函数
void OLED_Clear(void)
{
u8 i,n;
for(i=0;i<8;i++)
{
for(n=0;n<128;n++)
{
OLED_GRAM[n][i]=0;//清除所有数据
}
}
OLED_Refresh();//更新显示
}
局部清屏源码
void OLED_PartClear(u8 x0,u8 y0,u8 x1,u8 y1)
{
u8 i,n;
for( i=x0;i<x1;i++)
{
for( n=y0;n<y1;n++)
{
OLED_GRAM[i][n]=0;
}
}
OLED_Refresh();
}
这是清屏区域的示意图
关于局部刷新,我在while里面把x反复从0加到10,是偶数的话显示,基数的话不显示,记得每次布置完要刷新
time = time + 1;
if(time>=10)
time = 0;
if((time%2) == 0)
{
OLED_ShowNum(。。。。。。); //局部清屏区域要显示的内容
OLED_ShowChar(。。。。。。); //局部清屏区域要显示的内容
OLED_ShowNum(。。。。。。); //局部清屏区域要显示的内容
OLED_Refresh();
delay_ms(3000);
}
else{
OLED_PartClear(60,2,100,4); //局部清屏区域
OLED_Refresh();
delay_ms(500);
}
小白一枚,有错还请指正