STM32例程分享-02-LCD模块(SPI)

运行结果:

在这里插入图片描述

1. 简介

文章教程采用的是一块1.8寸的SPI通信的TFT LCD,分辨率128*160,驱动IC为ST7735S,具体见下图:
在这里插入图片描述

2. LCD驱动

在公众号“IOT趣制作”回复关键字“0425”直接相关下载文件,在目录“.\常用模块资料\02-LCD模块\LCD模块_1.8寸SPI示例工程\HARDWARE”下有一个LCD驱动文件,我们可以将整个目录拷贝到自己的驱动目录中。
在这里插入图片描述
其中lcd.c、lcd.h、lcd_init.c、lcd_init.h完成的是LCD初始化基本配置与LCD的基本功能的实现,如修改引脚等。
在这里插入图片描述
lcd_picture文件中包含用户需要的字模和位图等
在这里插入图片描述

3. 图片取模软件PCtoLCD2002

黑白的位图取模方式可以参考在“STM32例程分享-01-OLED模块(IIC)"文章中的PCtoLCD2002.exe的使用方法,主要区别就是在本次的例程中,导出设置为:
在这里插入图片描述
在这里插入图片描述
然后将生成的字模数据保存到lcd_picture.h中的汉字数组hanzi16[][32]中,如下图所示:
在这里插入图片描述

4. 图片取模软件Image2Lcd

由于我们使用的是LCD 彩屏,我们可以对彩色图片进行取模并显示在屏幕上,针对彩色图片的取模,使用的是Image2Lcd软件。

1)准备JPEG图片

准备一个我们需要的JPG文件,例如目录中“.\常用模块资料\02-LCD模块\测试图”下的IOT趣制作logo.jpg文件
在这里插入图片描述

2) 打开软件

在目录.\常用模块资料\02-LCD模块\取模软件\Image2Lcd,并点击左上角“打开”,选择上面的图片。
在这里插入图片描述
在这里插入图片描述

3)调整输出设置

按下图调整输出设置,然后点击保存:
在这里插入图片描述
在这里插入图片描述

4)导入图形数据

将生成的数组拷贝到lcd_picture.h中
在这里插入图片描述

5. 主函数添加初始化与显示

/*
*********************************************************************************************************
* 函 数 名: main
* 功能说明: 主函数
* 形 参:无
* 返 回 值: 无
*********************************************************************************************************
*/
int main(void)
{
    
    
	delay_init();						//delay初始化
	uart_init(115200);		
	printf("OK\r\n");
	
	LCD_Init();										//LCD初始化	
	LCD_Clear_color(LGRAYBLUE);		//LCD刷新全屏,填充背景色
	
	LCD_Fill(0,0,128,16,LIGHTGREEN);		//LCD刷新状态栏
	
	//显示彩色图片
	LCD_Image(32,32, 64, 64,gImage_funiot_logo); 
	//显示单色图片
	LCD_Draw_Picture(0,0, 16, 16, xinhaoBMP16,LIGHTGREEN);       			// 单色图片显示函数:状态栏"定位"logo
	
	//显示字符串或数字"Time:08:33"(模拟时间)
	LCD_ShowString(60,2,(const unsigned char *)"Time:08:33",BLACK,LIGHTGREEN,12,0);		//LCD状态栏显示“Time:08:33”
	LCD_ShowString(30,100,(const unsigned char *)"IOT",BLACK,LGRAYBLUE,16,0);					//LCD状态栏显示“IOT”
		//显示汉字(单色位图)
	LCD_Draw_Picture(55,100, 55+16, 100+16, hanzi16[0],LGRAYBLUE);         		// 显示文字:趣
	LCD_Draw_Picture(55+16,100, 55+16*2, 100+16, hanzi16[1],LGRAYBLUE);    		// 显示文字:制
	LCD_Draw_Picture(55+16*2,100, 55+16*3, 100+16, hanzi16[2],LGRAYBLUE);  		// 显示文字:作

	while(1)
	{
    
    
		delay_ms(400);
	}
}

6. 编译烧录运行

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43351158/article/details/130128570