c++读取图像数据_学会用STM32的图像显示轻松“表白”HR

大家记得转发,让更多的的想要学习的小伙伴看到,还可以关注我,获得更多教程呢!!!

大家记得转发,让更多的的想要学习的小伙伴看到,还可以关注我,获得更多教程呢!!!

至于怎么在显示屏上画线,写字,请点击基础教程帮你点亮屏幕很Easy!

液晶屏显示程序设计

—— 图像显示

By ying悦1SD

演示效果

11ab16d614854158d7a6a91a4ea72669.png

1. 选取图片

5bb6991ce45885e6ee230913c6a34ee0.png

2. 软件设置

d6bcaada8b8e8e0bdc09790f80f5bb21.png

用Image2lcd获取图像数据

32ebcb6ab58314eccbc53241ba41231e.png

3.打开文件

1.参数设置

2.设置图像大小后点击箭头确认

2. (注意图片尺寸不能大于240*320)

e0e9ca8bd6332733f5b0c57b0002c81a.png

用Image2lcd获取图像数据

c35e08de6cb75eb8eb31d579535336d1.png

4.保存数据

点击“保存”

ec02fc8f6e4d0ae66f6a35a010ecbb72.png
e0e971c75a41376db17a8320df9922ca.png

保存在.C文件

2729306aaebc68cf59a215379509de7f.png

2. 用Image2lcd获取图像数据

fbf1e0b8cba4be8ab386af4964a68aa6.png

图像宽度图像高度

表头

图像数据:320*240*2=153600字节PicWidthg Im age _ pic[3]* 256 PicHeighg Im age _ pic[5]* 256· g Im age _ pic[2];· g Im age _ pic[4];

图像数据从gImage_pic[8]开始

3. 添加图像数据到工程

 在user目录新建文件pic.c,pic.h,复制所有图像数据到pic.c,在pic.h 中申明图像数组。  在需要引用图像数据的c文件中添加 #include “pic.h”

· 在user目录新建文件pic.c,pic.h,复制所有图像数据到pic.c,在pic.h

中申明图像数组。

· 在需要引用图像数据的c文件中添加 #include "pic.h"

4. 设计图像显示函数

efd42d4436f8d6f0984a67c35cf55c8f.png
void ILI9341_DispImage( uint16_t usX, uint16_t usY, const uint8_t pImage[] ) {uint16_t temp,ImageWidth,ImageHeigh; uint32_t i;ImageWidth = pImage[3]*256+pImage[2];ImageHeigh = pImage[5]*256+pImage[4];ILI9341_OpenWindow ( usX, usY, ImageWidth , ImageHeigh ); ILI9341_Write_Cmd ( macCMD_SetPixel );for(i=0;i

5. 调整液晶屏显示方向

235e5512c3c2058b61c546e020c4502e.png

1. 竖屏

2. 横屏

3. 横屏x翻转

4. 竖屏xy翻转

图像正确打开方式

4c6a41c0f97626972a1f3353e1e4c538.png

· 将图片放入SD卡,直接读取sd卡文件在屏幕上显示,需要知识点:

1. STM32 SDIO接口工作原理

• stm32f10x_sdio.c,stm32f10x_sdio.h

2. fat32文件系统

· 如何从sd卡中查找文件名

3. bmp文件格式

· 如何从bmp文件中读取图像数据

4. jpeg等文件格式及解码算法。

· 如何从经过压缩的图片文件中读取图像数据

设计要求

· 开发板具有3.2寸TFT-LCD显示屏,分辨率为320*240,并提供板级驱动包,提供基本显示设置函数,基本功能函数。在此基础上设计程序,在液晶屏上显示个人简介,要求附本人照片,版式、内容不限。

具体操作(重点来了)配置工程请点击工程配置

第一步添加生成的图像数据(前提是你已经配置好工程)

5cae653b421e1a1c2f72df39206bf660.png

第二步添加申明

23550e9ea7e77108527e3ce47852b623.png

第三步写入代码

52e9f7151c6f25fb1f1060ea667f3a49.png
9e92ce65ea7432f03abb2812f93cf352.png

详细代码:

#include "ui.h"#define LEDRED_ONGPIO_ResetBits(GPIOB, GPIO_Pin_5)#define LEDGREEN_ONGPIO_ResetBits(GPIOB, GPIO_Pin_0)#define LEDGREEN_OFFGPIO_SetBits(GPIOB, GPIO_Pin_0)#define LEDRED_ONGPIO_ResetBits(GPIOB, GPIO_Pin_5)#define LEDRED_OFFGPIO_SetBits(GPIOB, GPIO_Pin_5)u8UICnt=0;u16 Get_TouchKey( void ){u16 KeyTemp;strType_XPT2046_Coordinate Coordinate;if ( ucXPT2046_TouchFlag == 1 ) //Èç¹û´¥ÃþÁËÆÁÄ»{if( UICnt==0 )//UI00´¥ÆÁ¼üʶ±ð{if ( XPT2046_Get_TouchedPoint ( & Coordinate, & strXPT2046_TouchPara ) ) //»ñÈ¡´¥ÃþµãµÄ×ø±ê{if( Coordinate.x>50 && Coordinate.x<150 && Coordinate.y>220 && Coordinate.y<250 )KeyTemp = 101;else if( Coordinate.x>88 && Coordinate.x<152 && Coordinate.y>80 && Coordinate.y<100 )KeyTemp = 102;else if( Coordinate.x>164 && Coordinate.x<228 && Coordinate.y>80 && Coordinate.y<100 )KeyTemp = 103;//...}}else if( UICnt==1 )//UI01´¥ÆÁ¼üʶ±ð{if ( XPT2046_Get_TouchedPoint ( & Coordinate, & strXPT2046_TouchPara ) ) //»ñÈ¡´¥ÃþµãµÄ×ø±ê{if( Coordinate.x>0 && Coordinate.x<=239 && Coordinate.y>0 && Coordinate.y<=320 )KeyTemp = 111;//...}}else if( UICnt==2 )//UI02´¥ÆÁ¼üʶ±ð{if ( XPT2046_Get_TouchedPoint ( & Coordinate, & strXPT2046_TouchPara ) ) //»ñÈ¡´¥ÃþµãµÄ×ø±ê{if( Coordinate.x>0 && Coordinate.x<=239 && Coordinate.y>0 && Coordinate.y<=320 )KeyTemp = 121;//...}}else if( UICnt==3 )//UI03´¥ÆÁ¼üʶ±ð{if ( XPT2046_Get_TouchedPoint ( & Coordinate, & strXPT2046_TouchPara ) ) //»ñÈ¡´¥ÃþµãµÄ×ø±ê{if( Coordinate.x>0 && Coordinate.x<=239 && Coordinate.y>0 && Coordinate.y<=320 )KeyTemp = 131;//...}}//...}else KeyTemp = 0;return KeyTemp;}//UI00 Ö÷½çÃævoid UI00( void ){u16 TouchKey;//1. »æÖÆͼÐνçÃæILI9341_Clear( 0,0,macILI9341_Default_Max_Width,macILI9341_Default_Max_Heigth,macWHITE );ILI9341_DispImage( 0,0,gImage_2);ILI9341_DispString_EN_32(50,220,"Open Lock
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值