普中PZ6808L-F4开发板TFTLCD显示屏使用笔记

0x00 开发板介绍

这学期学的STM32开发,实验室里的开发板型号为PZ6808L-F4
整个板子是这样的

这块板子是F103和F407双核的,但我学的一直就是F407,所以本文所有问题只针对F407。

由于期末实践需要用到这一块4.3寸TFT屏幕显示图片,过程遇到了一些问题,在此做个记录。

0X01 SD卡存储BMP图片

首先是尝试使用了普中给的例程【42. 数码相框-BMP图片显示实验】
(提示:普中例程里的库tftlcd需要替换,否则屏幕无法正常点亮)
普中PZ6808L-F4开发板TFTLCD显示屏使用笔记_第1张图片
普中PZ6808L-F4开发板TFTLCD显示屏使用笔记_第2张图片

普中的【普中STM32F4XX开发攻略】内对该实验例程有一些说明,但也有一些不符。比如这个攻略里的屏幕是3.5寸的,开发板的屏幕却是4.3寸的。

文档中这个提示一定要注意,要在SD卡根目录创建一个名为“图片”的文件夹,然后再把BMP格式的图放进去才能显示。而且对BMP图片的格式有一定要求。
普中PZ6808L-F4开发板TFTLCD显示屏使用笔记_第3张图片
经过多次尝试才试出来了这个例程可解析的BMP格式如下图
软件Image2Lcdv3.2,xx软件园下载,勿使用高速下载器 本地下载就行
普中PZ6808L-F4开发板TFTLCD显示屏使用笔记_第4张图片
选择24位真彩水平扫描,左下角勾选包含图像头数据以及自底向顶扫描高位在前就行,那个自右至左扫描无所谓。(经过尝试,原图最好是jpg或者gif比较好,png不知道为啥会糊)

由于该软件的24位似乎对宽高有限制,高度最多只能480,还没达到屏幕的极限,所以我又用格式工厂试了下,意外的可以使用,限制下宽高就行。
普中PZ6808L-F4开发板TFTLCD显示屏使用笔记_第5张图片
经过测试,该屏幕的宽度是480,高度800,显示效果如下:

宽度极限480
普中PZ6808L-F4开发板TFTLCD显示屏使用笔记_第6张图片
高度极限800
普中PZ6808L-F4开发板TFTLCD显示屏使用笔记_第7张图片
图片是反着显示的(左右上下貌似都反了),大概是BMP解析的问题吧,有空再研究,现在先赶ddl去了…


现在大概赶完了作业,补充一点内容

0x02 C语言数组格式图片

图片同样是使用Image2Lcd v3.2这个工具进行转换的。
普中PZ6808L-F4开发板TFTLCD显示屏使用笔记_第8张图片
参数请选择16位真彩水平扫描,其他都别勾选(如上图)。

使用普中tftlcd库中的一个函数LCD_ShowPicture,代码如下:

// x\y是图片开始的横纵坐标, wide\high是图片宽高,pic是图片数组名
void LCD_ShowPicture(u16 x, u16 y, u16 wide, u16 high,u8 *pic)
{
	u16 temp = 0;
	long tmp=0,num=0;
	LCD_Set_Window(x, y, x+wide-1, y+high-1);
	num = wide * high*2 ;
	do
	{  
		temp = pic[tmp + 1];
		temp = temp << 8;
		temp = temp | pic[tmp];
		LCD_WriteData_Color(temp);//逐点显示
		tmp += 2;
	}
	while(tmp < num);	
}

注意:图片大小不能太大,因为会使代码文件变得过大。

效果图如下


还有一种是把bin文件放SD卡用FATFS文件系统读,因为读取速度快所以可以放视频(比如Bad Apple),但是我太菜了整不出来,之后研究研究再说。。


2023.7.25更新
因为一直有人问普中资料所以说一下,因为我已经毕业了所以早都删了,但是网上能找到资料,善用搜索啊同志们
http://prechin.net/forum.php?mod=viewthread&tid=35264

你可能感兴趣的:(STM32,单片机,stm32)