中景园官方提供的库函数当中,没有提供局部刷新/清屏的函数,仅仅提供了全局刷新的OLED_Clear()函数,但是全局刷新在包括但不限于需要分部显示等的情况下就不是很好用,因此我重新编写了用于局部刷新的OLED_PartClear()函数.

函数源码

void OLED_PartClear(u8 x0,u8 y0,u8 x1,u8 y1)
{
    for(u8 i=x0;i<x1;i++)
    {
        for(u8 n=y0;n<y1;n++)
        {
            OLED_GRAM[i][n]=0;
        }
    }
    OLED_Refresh();
}

代码说明

参考本身提供清屏函数OLED_Clear()

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();
}

清屏/刷新的实现方式是将显存的暂存数组OLEG_GRAM[][]全部清空,之后再使用OLED_Refresh()函数写入并刷新显存.
那么我们需要注意的一点是,由于驱动芯片SSD1306的限制,我们使用这种清屏方式的话,在x轴上可以实现最小分度为1的清屏,但是在y轴上只能以8个像素为一个分度进行清屏.后续可能会进行修改,目前的想法是参考OLED_DrawPoint()函数进行修改.

最后修改日期:2021年12月6日