1. 简介
文章教程采用的是一块1.8寸的SPI通信的TFT LCD,分辨率128*160,驱动IC为ST7735S,具体见下图:
2.下载例程
完整例程下载:Gitee下载:STM32ExampleCode_02_LCD
3. LCD驱动
在目录“\HARDWARE”下有一个LCD驱动文件:
其中lcd.c、lcd.h、lcd_init.c、lcd_init.h完成的是LCD初始化基本配置与LCD的基本功能的实现,如修改引脚等。
lcd_picture文件中包含用户需要的字模和位图等
4. 图片取模软件
黑白的位图取模方式可以参考在“STM32ExampleCode_01_OLED"文章中的PCtoLCD2002.exe的使用方法,主要区别就是在本次的例程中,导出设置为:
然后将生成的字模数据保存到lcd_picture.h中的汉字数组hanzi16[][32]中,如下图所示:
4. 图片取模软件Image2Lcd
由于我们使用的是LCD 彩屏,我们可以对彩色图片进行取模并显示在屏幕上,针对彩色图片的取模,使用的是Image2Lcd软件。
1)准备JPEG图片
准备一个我们需要的JPG文件,例如IOT趣制作logo.jpg文件
2) 下载软件
3) 打开软件
点击左上角“打开”,选择上面的图片。
4)调整输出设置
按下图调整输出设置,然后点击保存:
5)导入图形数据
将生成的数组拷贝到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);
}
}