[应用相关] AT32图片显示案例(支持JPG、PNG、BMP、GIF 文件格式)

[复制链接]
3681|2
 楼主| muyichuan2012 发表于 2025-1-7 10:26 | 显示全部楼层 |阅读模式
AT32图片显示案例
(支持JPG、PNG、BMP、GIF 文件格式)



4.25 案例 图片显示
4.25.1 简介
AT32 SURF 板载了一个3.5 寸的TFT LCD 液晶显示屏,分辨率为480*320。通过软件解码库将SD
卡里面的图片文件解码后,显示在LCD 液晶显示屏。目前支持JPG、PNG、BMP、GIF 文件格式的
解码。

4.25.2 资源准备
 硬件环境:
对应产品型号的AT-SURF-F437 Board
 软件环境:
AT32F435_437_Firmware_Library_V2.x.x\project\at_surf_f437\examples\picture
 示例图片:
图片原始路径:Utilities\PICTURE,复制PICTURE 文件夹到SD 卡根目录下

4.25.3 硬件设计
本案例使用的硬件资源有TFT LCD 液晶显示屏、SD 卡、PCA9555 IO 扩展芯片,对应的引脚如下:
表33. 硬件资源使用
54508677c8f9517d05.png

39035677c8fa610146.png
对应的电路原理如下:
图74. TFT LCD 电路原理图
56587677c8fd574398.png

图75. PCA9555 电路原理图
88924677c8fec5a056.png


4.25.4 软件设计
1) TFT LCD 测试
 初始化TFT LCD
 将图片解码后显示在LCD 屏上

2) 代码介绍
 main 函数代码描述

  1. int main(void)
  2. {
  3. /* 初始化系统时钟 */
  4. system_clock_config();
  5. /* 初始化中断优先级分组 */
  6. nvic_priority_group_config(NVIC_PRIORITY_GROUP_4);
  7. /* 初始化延时函数 */
  8. delay_init();
  9. /* 初始化LCD */
  10. lcd_init(LCD_DISPLAY_VERTICAL);
  11. /* 显示信息 */
  12. lcd_string_show(10, 20, 200, 24, 24, (uint8_t *)" picture test");
  13. /* 初始化文件系统 */
  14. if(file_system_init() != SUCCESS)
  15. {
  16. lcd_string_show(10, 55, 300, 24, 24, (uint8_t *)"sd card init error");
  17. while(1);
  18. }
  19. /* 初始化IO 扩展芯片 */
  20. pca9555_init(PCA_I2C_CLKCTRL_100K);
  21. /* 显示图片 */
  22. picture_display(&picture_info);
  23. while(1)
  24. {
  25. }
  26. }
 void picture_display(picture_type *picture)函数代码描述
  1. /**
  2. * [url=home.php?mod=space&uid=247401]@brief[/url] display picture.
  3. * @param picture: picture information structure.
  4. * @retval none
  5. */
  6. void picture_display(picture_type *picture)


4.25.5 下载验证
 在LCD 屏上显示信息,每2 秒钟切换下一张图片。
图76. 实验效果

12361677c903999182.png



盗铃何须掩耳 发表于 2025-1-8 16:55 | 显示全部楼层
不同格式的图片怎么解码的
遗忘领域 发表于 2025-1-22 10:07 | 显示全部楼层
图片如何解析的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

215

主题

2077

帖子

37

粉丝
快速回复 在线客服 返回列表 返回顶部