#STM32L010驱动2.7寸电子水墨屏心得
经过几天的折腾调试2.7寸电子水墨屏的驱动,驱动芯片使用GDEW027W3芯片,厂家给了调试驱动,但是一开始使用原厂给的Demon移植过来无法实现局部刷新,经过几天的排查发现硬件的升压电路存在问题总是升压不够导致刷新不了,要么就是刷新不完全不稳定。2.7寸电子水墨屏的特点是低功耗,但是刷新速度比较慢,我的调试代码亲测可用。
void pic_display_white(void)
{
unsigned int i;
EPD_W21_WriteCMD(0x13);
for(i=0;i<5808;i++)
{
EPD_W21_WriteDATA(0xff);
}
driver_delay_xms(2);
EPD_W21_WriteCMD(0x10);
for(i=0;i<5808;i++)
{
EPD_W21_WriteDATA(0xff);
}
driver_delay_xms(2);
}
void full_display(void pic_display(void))
{
pic_display(); //picture
lut(); //Power settings
EPD_W21_WriteCMD(0x12); //DISPLAY REFRESH
driver_delay_xms(100); //!!!The delay here is necessary, 200uS at least!!!
lcd_chkstatus();
}
void lcd_chkstatus(void)
{
unsigned char busy;
do
{
EPD_W21_WriteCMD(0x71);
busy =isEPD_W21_BUSY;
busy =!(busy & 0x01);
}
while(busy);
driver_delay_xms(200);
}
void lut(void)
{
unsigned int count;
{
EPD_W21_WriteCMD(0x20); //vcom
for(count=0;count<44;count++)
{EPD_W21_WriteDATA(lut_vcomDC[count]);}
EPD_W21_WriteCMD(0x21); //ww
for(count=0;count<42;count++)
{EPD_W21_WriteDATA(lut_ww[count]);}
EPD_W21_WriteCMD(0x22); //bw r
for(count=0;count<42;count++)
{EPD_W21_WriteDATA(lut_bw[count]);}
EPD_W21_WriteCMD(0x23); //wb w
for(count=0;count<42;count++)
{EPD_W21_WriteDATA(lut_bb[count]);}
EPD_W21_WriteCMD(0x24); //bb b
for(count=0;count<42;count++)
{EPD_W21_WriteDATA(lut_wb[count]);}
}
}
void lut1(void)
{
unsigned int count;
{
EPD_W21_WriteCMD(0x20); //vcom
for(count=0;count<44;count++)
{EPD_W21_WriteDATA(lut_vcom1[count]);}
EPD_W21_WriteCMD(0x21); //ww --
for(count=0;count<42;count++)
{EPD_W21_WriteDATA(lut_ww1[count]);}
EPD_W21_WriteCMD(0x22); //bw r
for(count=0;count<42;count++)
{EPD_W21_WriteDATA(lut_bw1[count]);}
EPD_W21_WriteCMD(0x23); //wb w
for(count=0;count<42;count++)
{EPD_W21_WriteDATA(lut_wb1[count]);}
EPD_W21_WriteCMD(0x24); //bb b
for(count=0;count<42;count++)
{EPD_W21_WriteDATA(lut_bb1[count]);}
}
}
void