【玩转嵌入式屏幕显示】(五)TFT 您所在的位置:网站首页 帮我删除屏幕上显示的图片 【玩转嵌入式屏幕显示】(五)TFT

【玩转嵌入式屏幕显示】(五)TFT

2024-05-22 06:02| 来源: 网络整理| 查看: 265

【玩转嵌入式屏幕显示】(五)TFT-LCD屏幕显示图片 原创

MCUlover666 2022-01-11 09:44:17 ©著作权

文章标签 取模 数据 字节数 TFT-LCD 文章分类 物联网

©著作权归作者所有:来自51CTO博客作者MCUlover666的原创作品,请联系作者获取转载授权,否则将追究法律责任 1. 使用取模软件对图片取模

取模软件使用Img2LCD,附上下载链接。

首先准备一张用于显示的图片,修改图片像素值为240*240:【玩转嵌入式屏幕显示】(五)TFT-LCD屏幕显示图片_数据 在取模软件中打开图片:【玩转嵌入式屏幕显示】(五)TFT-LCD屏幕显示图片_TFT-LCD_02【玩转嵌入式屏幕显示】(五)TFT-LCD屏幕显示图片_字节数_03【玩转嵌入式屏幕显示】(五)TFT-LCD屏幕显示图片_数据_04

2. 编写图片显示函数 /** * @brief 显示图片函数 * @param x,y 起点坐标 * @param width 图片宽度 * @param height 图片高度 * @param p —— 图片缓存数据起始地址 * @note Image2Lcd取模方式:C语言数据/水平扫描/16位真彩色(RGB565)/高位在前 其他的不要选 * @return none */ void LCD_Show_Image(uint16_t x, uint16_t y, uint16_t width, uint16_t height, const uint8_t *p) { uint32_t img_size = width * height * 2; //图片所占字节数 uint32_t remain_size = img_size; //图片每次发送后剩余的字节数 uint8_t i = 0; /* 错误检测 */ if(x + width > LCD_Width || y + height > LCD_Height) { return; } LCD_Address_Set(x, y, x + width - 1, y + height - 1); LCD_WR_RS(1); /* SPI每次最大发送2^16 = 65536个数据,图片最大大小为240*240*2 = 115200,会超过此大小,所以设计循环发送算法 */ for(i = 0;i = 1) { LCD_SPI_Send((uint8_t *)p, 65535); p += 65535; remain_size -= 65535; } else { LCD_SPI_Send((uint8_t *)p, remain_size % 65535); } } }

测试代码:

int main(void) { HAL_Init(); LCD_Init(); LCD_Show_Image(0,0,240,240,gImage_bear); LCD_ShowCharStr(70,240-24,140,"Starting...",WHITE,BLUE,24); while (1); }

测试结果如下:【玩转嵌入式屏幕显示】(五)TFT-LCD屏幕显示图片_取模_05

收藏 评论 分享 举报

上一篇:【Hexo搭建个人博客】(十一)使用Appveyor持续集成博客(备份Hexo博客源文件)

下一篇:【玩转嵌入式屏幕显示】(三)TFT-LCD屏幕打点 + 画线 + 画矩形 + 画圆Bresenham算法实现(基于打点函数,算法可移植到任何屏幕的驱动程序之上)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有