打印
[开发板与模块]

【ESK32-30519 + ESK32-21001测评】图片及中文显示

[复制链接]
2390|55
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 eltonchang2001 于 2022-11-9 11:54 编辑

利用ESK32-A2A31显示模块可以实现中文及图片显示,其实现方法如下:
1. 图片显示
在例程中提供了图片显示函数void LCD_PicDraw(u8 X_Location, u16 Y_Location, u8 Height, u16Width, uc8 *Pptr)
,它可以指定图片的显示位置、图片的长度与宽度等。
为了显示所需要的图片,可通过相应的工具来生成对应的数组文件,其后缀为*.h。
图1 生成工具

这样处理后,其显示效果如图2所示。
图2  显示效果

但此时所显示的图片效果与字符的显示方向是反向的,为此需要将显示函数改为如下的内容:
void LCD_PicDraw(u8 X_Location, u16 Y_Location, u8 Height, u16 Width, uc8 *Pptr)
{
  u32 xid = 0;
  u32 ImgAdds = 0;
  u32 yid = 0;
  u32 i = 0, j = 0, color = 0;
  xid = Height + X_Location;
  yid = Y_Location;
  LCD_StarterSet(xid, yid);
  for (i = 0; i < Height; i++)
  {
    LCD_WriteRAMPrior();
    for (j = 0; j < Width; j++)
    {
      ImgAdds = (i * Width * 2) + (j * 2);
      color = Pptr[ImgAdds] << 8 | (Pptr[ImgAdds + 1]);
      LCD_WriteRAM(color);
    }
         xid++;
    LCD_StarterSet(xid, yid);
  }
}


经修改,使用如下的主程序就可获得图3所示的效果。
int main(void)
{
  LCD_Init();
  LCD_Config();
  LCD_BackColorSet(Black);
  LCD_TextColorSet(Yellow);
  LCD_StringLineDisplay(Line3, "   Photo     ");
  LCD_PicDraw((50), (50), 80, 160, gImage_k);
  while (1);
}

图3修正后的显示效果

2. 中文显示
要实现中文显示,可使用字模提取软件来构建字库,见图4所示。
图4 提取字模
为实现中文的显示,所配置的显示函数如下:
void LCD_hzDisplay(u32 Line_Num, u32 Column, u8 Ascii)
{
            LCD_hzDraw (Line_Num, Column, &ASCII_FontA_Table[Ascii * 32]);
}


void LCD_hzDraw(u32 X_Location, u32 Y_Location, u8 *Cptr)
{
  u32 xid = X_Location;
  u32 i = 0, j = 0;
  u16 u = 0;
  LCD_StarterSet(X_Location, Y_Location);
  for (i = 0; i < 16; i++)
  {
        LCD_WriteRAMPrior();
                   u=Cptr[i*2];
        for (j = 8; j>0; j--)
        {
          if ((u & (1 << (j-1))) == 0x00)
          {
              LCD_WriteRAM(Color_Back);
          }
          else
          {
              LCD_WriteRAM(Color_Text);
          }
        }
        u=Cptr[i*2+1];
        for (j = 8; j>0; j--)
        {
          if ((u & (1 << (j-1))) == 0x00)
          {
             LCD_WriteRAM(Color_Back);
          }
          else
          {
             LCD_WriteRAM(Color_Text);
          }
        }
                   xid++;
        LCD_StarterSet(xid, Y_Location);
  }
}

这样通过下面的主程序就可获得图5所示的显示效果。
int main(void)
{
  LCD_Init();
  LCD_Config();
  LCD_BackColorSet(Black);
  LCD_TextColorSet(Yellow);
  LCD_hzDisplay(Line1, 70, 0);
  LCD_ hzDisplay (Line1, 90, 1);
  LCD _hzDisplay (Line1, 110, 2);
  LCD_ hzDisplay (Line1, 130, 3);
  LCD_ hzDisplay (Line1, 150, 4);
  while (1);
}

图5 显示效果

使用特权

评论回复

相关帖子

沙发
iamrookie| | 2022-9-23 15:52 | 只看该作者
楼主自己写的 Image2LCD 上位机工具吗

使用特权

评论回复
板凳
jinglixixi|  楼主 | 2022-9-23 16:25 | 只看该作者
iamrookie 发表于 2022-9-23 15:52
楼主自己写的 Image2LCD 上位机工具吗

没有,是现有的工具软件。

使用特权

评论回复
地板
sanxingnote7| | 2022-10-1 13:53 | 只看该作者
这个是自带的屏幕吗               

使用特权

评论回复
5
yeates333| | 2022-10-1 14:06 | 只看该作者
能够加载汉字库吗              

使用特权

评论回复
6
geraldbetty| | 2022-10-1 14:27 | 只看该作者
如何实现中文和英文的 混合显示呢

使用特权

评论回复
7
jinglixixi|  楼主 | 2022-10-2 17:07 | 只看该作者
sanxingnote7 发表于 2022-10-1 13:53
这个是自带的屏幕吗

不是,是自配的。

使用特权

评论回复
8
jinglixixi|  楼主 | 2022-10-2 17:08 | 只看该作者
yeates333 发表于 2022-10-1 14:06
能够加载汉字库吗

少量的没问题,完整的字库要存放到外部FLASH存储器。

使用特权

评论回复
9
jinglixixi|  楼主 | 2022-10-2 17:10 | 只看该作者
geraldbetty 发表于 2022-10-1 14:27
如何实现中文和英文的 混合显示呢

简单的处理方法是分别进行定位显示,自动处理的方法是按显示内容的内码来区分处理。

使用特权

评论回复
10
chenjun89| | 2022-10-4 16:18 | 只看该作者
屏幕大图片小

使用特权

评论回复
11
Henryko| | 2022-10-4 19:46 | 只看该作者
能加汉字字库吗

使用特权

评论回复
12
jinglixixi|  楼主 | 2022-10-5 08:59 | 只看该作者
Henryko 发表于 2022-10-4 19:46
能加汉字字库吗

全字库没戏

使用特权

评论回复
13
jinglixixi|  楼主 | 2022-10-5 09:00 | 只看该作者

受内存限制

使用特权

评论回复
14
htmlme| | 2022-10-5 16:50 | 只看该作者
这个不知道刷新的速度怎么样              

使用特权

评论回复
15
uiint| | 2022-10-5 17:48 | 只看该作者
Image2LCD 可以生成多大的图片?

使用特权

评论回复
16
loutin| | 2022-10-5 19:28 | 只看该作者
能不能使用gui来显示汉字和图片呢

使用特权

评论回复
17
jinglixixi|  楼主 | 2022-10-6 08:56 | 只看该作者
loutin 发表于 2022-10-5 19:28
能不能使用gui来显示汉字和图片呢

可能够呛,占用MCU的存储空间比较大。

使用特权

评论回复
18
jinglixixi|  楼主 | 2022-10-6 08:56 | 只看该作者
htmlme 发表于 2022-10-5 16:50
这个不知道刷新的速度怎么样

速度一般

使用特权

评论回复
19
jinglixixi|  楼主 | 2022-10-6 08:57 | 只看该作者
uiint 发表于 2022-10-5 17:48
Image2LCD 可以生成多大的图片?

常规的图片没问题

使用特权

评论回复
20
sanxingnote7| | 2022-10-9 20:30 | 只看该作者
HT32F1654单片机的性能怎么样   

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

446

主题

2703

帖子

38

粉丝