我使用的一个七寸屏,参考裸奔的例程,用液晶屏打印一行行的汉字。当打印满整屏后,移除第一行,使第一行显示原来第二行的内容,。。。,倒数第二行显示原来最后一行的内容。然后清空最后一行,再在最后一行打印新的一行。程序开启了MMU加速。结果是最后1行显示异常,乱码。但当最后一行上移后显示正常。显示缓冲区拷贝程序如下:
void MovePixel //显示区拷贝
{
if (1)
{
for (y = 24; y < (SCR_YSIZE_TFT); y++)
{
for( x = 0 ; x < SCR_XSIZE_TFT ; x++ )
{
LCD_BUFFER[y-ay][x] = LCD_BUFFER[y][x] ;
}
}
}
}
主程序中为:
MovePixel();//显示缓冲区移动
ClearLine(8+19*24,clBlack);//最后一行的地址 清除一行汉字 24点阵行
Lcd_printf(LCD_LINE_START,(24+19*24),clWhite,clLRed,0,string);//在最后一行打印字符 |