如果LCD把屏幕做偏了,一般是画面的上面一部分显示不出来,
这时就需要
1) 在初始化代码中 把行结束坐标调的大一些,同时清屏的代码也要把坐标后移;
2) 在BLOCK_WRITE函数中,同样也要把start_y, end_y相应的往下调;
例子:
INIT:
lcd的实际分辨率是240*240,可屏幕往下做偏了,画面顶部有一小部分不能显示,
这就要在初始化中,特意将分辨率设为比240*240大一点,这里我设的是240*320;
//windows size
LCD_CtrlWrite_ST7789S(0x2A);
LCD_DataWrite_ST7789S(0x00);
LCD_DataWrite_ST7789S(0x00);
LCD_DataWrite_ST7789S(0x00);
LCD_DataWrite_ST7789S(0xEF); //0xef=240
LCD_CtrlWrite_ST7789S(0x2B);
LCD_DataWrite_ST7789S(0x00);
LCD_DataWrite_ST7789S(0x00);
LCD_DataWrite_ST7789S(0x01);
LCD_DataWrite_ST7789S(0x40); //0x0140=320
LCD_CtrlWrite_ST7789S(0x2C);
//清屏坐标也要相应往后移
for(i=0;i<320;i++)
{
for(j=0;j<240;j++)
{
LCD_DataWrite_ST7789S(0x00);
LCD_DataWrite_ST7789S(0x00);
}
}
BlockWrite:
starty+=40; //40是根据实际情况试出来的
endy+=40;
/* 正常的流程 */
...
...