新手上路
- 积分
- 24
- 金钱
- 24
- 注册时间
- 2021-8-30
- 在线时间
- 6 小时
|
楼主 |
发表于 2022-2-16 13:32:59
|
显示全部楼层
终于搞定了,9488的接口函数LCD_color_fill需要修改,不清楚为何这么改,但是运行LVGL8的例程,显示正常了.
void LCD_Color_Fill(u16 sx, u16 sy, u16 ex, u16 ey, u16 *color)
{
u16 height, width;
u16 i, j;
width = ex - sx + 1; //得到填充的宽度
height = ey - sy + 1; //高度
if (lcddev.id == 0X9486 || lcddev.id == 0X9488)
{
for (i = sy; i < ey + 1; i++)
{
for (j = sx; j < ex + 1; j++)
LCD_Fast_DrawPoint(j, i, color[(i - sy) * width + (j - sx)]);
}
}
else
{
for (i = 0; i < height; i++)
{
LCD_SetCursor(sx, sy + i); //设置光标位置
LCD_WriteRAM_Prepare(); //开始写入GRAM
for (j = 0; j < width; j++)
LCD->LCD_RAM = color[i * width + j]; //写入数据
}
}
}
void LCD_Fast_DrawPoint(u16 x, u16 y, u16 color)
{
if (lcddev.id == 0X9486 || lcddev.id == 0X9488)
{
LCD_WR_REG(lcddev.setxcmd);
LCD_WR_DATA(x >> 8);
LCD_WR_DATA(x & 0XFF);
LCD_WR_DATA(x >> 8);
LCD_WR_DATA(x & 0XFF);
LCD_WR_REG(lcddev.setycmd);
LCD_WR_DATA(y >> 8);
LCD_WR_DATA(y & 0XFF);
LCD_WR_DATA(y >> 8);
LCD_WR_DATA(y & 0XFF);
}
if (lcddev.id == 0X9341 || lcddev.id == 0X5310)
{
LCD_WR_REG(lcddev.setxcmd);
LCD_WR_DATA(x >> 8);
LCD_WR_DATA(x & 0XFF);
LCD_WR_REG(lcddev.setycmd);
LCD_WR_DATA(y >> 8);
LCD_WR_DATA(y & 0XFF);
}
LCD->LCD_REG = lcddev.wramcmd;
LCD->LCD_RAM = color;
}
|
|