zoukankan      html  css  js  c++  java
  • LCD显示图片

    前言

    lcd 显示图片 。可做背景,图片展示,介绍等。

    仅此文记录学习正点原子stm32F407探索者 tftlcd教程 的一段日子

    本文使用硬件:正点原子stm32F407探索者、ST-Link

    本文使用软件:Picture2Hex、Keil uVision5 
    (Picture2Hex下载地址:https://pan.baidu.com/s/1H1gYlDUg-udoHburyw0Hiw  提取码:2pqv )

     该下载地址里还包括了exprgb565data【也是rgb565转换】、WinHex_19.7【**版,可查看文件的编码】)

    使用方法

    1. 准备一张分辨率至少为(200*100)的图片。

      比如这样()

    2. 解压后并打开 Picture2Hex.exe

    3. 设置参数,width、high(高宽与图片对应)、RGB(必须为RGB565)、File

    4. 在该软件 work 目录下就会生成对应的 图片 和 .c代码文件

    5. 打开 这个 .c 文件,会发现在数组里有一堆十六进制代码,这代码是RBG565颜色代码,每一个代表一个色块。
      LOGO_W和LOGO_H分别为宽和高,FRAME_COUT不知道是啥。

    6. 新建logo.h文件,全选(Ctrl+A)logo.c里代码后复制(Ctrl+C)粘贴(Ctrl+V)到logo.h中,并把logo.h导入keil中(此处不细讲了)

    7. 看上图出现了 红叉× ,发现是 uint16_t 未定义,此处最简单方法是改成 unsigned short ,并把这数组的名称改为 color (其他名称也行)

    8. 主函数文件里导入 logo.h

    9. 添加函数, color 为 logo.h 里的数组名 (最后介绍下该函数)

    10.  编译通过即可,如果照片分辨率太大就会出现单片机内存不够问题, 可见此处:https://blog.csdn.net/Higashino_Keigo/article/details/88559488

    函数介绍

    贴上源代码:

    //在指定区域内填充指定颜色块
    //(sx,sy),(ex,ey):填充矩形对角坐标,区域大小为:(ex-sx+1)*(ey-sy+1)   
    //color:要填充的颜色
    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;			//高度
     	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];//写入数据
    	}		  
    }  

    main.c:

    #include "sys.h"
    #include "delay.h"
    #include "usart.h"
    #include "led.h"
    #include "lcd.h"
    #include "logo.h" //导入色块所在的头文件
    
    int main(void)
    { 
    	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//中断优先级设置
    	delay_init(168);      //延时初始化
    	uart_init(115200);		//波特率设置
    	
     	LCD_Init();           //LCD初始化 FSMC接口初始化
    	POINT_COLOR=BLACK;    //LCD画笔为黑色
    	
    	LCD_Color_Fill(1,1,LOGO_W,LOGO_H,color); //指定区域填充色块(color为色块数组)
    	delay_ms(10000);
    }
    
  • 相关阅读:
    简体繁体互译代码段:
    require.js使用baseUrl + paths导入文件配置的3种方法
    vue + vue-router + vue-resource 基于vue-cli脚手架 --->笔记
    解决webstorm卡顿问题
    js 函数闭包内部返回函数体调用方法难点解答
    java学习笔记之位运算符
    java集合类学习笔记之LinkList
    java集合类学习笔记之ArrayList
    java学习笔记之对象序列化
    springboot集成巨杉数据库
  • 原文地址:https://www.cnblogs.com/laoxiongzhijia/p/14665382.html
Copyright © 2011-2022 走看看