stm32 0.96OLED iic 局部清屏

中某园的库函数中没有给出局部清屏或刷新的函数,仅有全屏刷新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

这是清屏区域的示意图

stm32 0.96OLED iic 局部清屏_第1张图片

关于局部刷新,我在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);
	}

小白一枚,有错还请指正

你可能感兴趣的:(stm32,单片机,arm)