经过我一个通宵的奋战,终于成功实现了将普通的图片显示在以STM32为核心板,2.8寸(320*240)的TFT。具体实现过程如下:
当然前提条件是得实现uc/gui系统的移植,这些具体就不累述了。首先是得准备好工具软件:uC-GUI-BitmapConvert-Demo(我使用的是V5.24版本),PS,一张图片。
所有工具准备齐全后,便可以开始我们的工作了。
首先用PS软件将我们的图片设置成我们需要的大小,然后存储为bmp格式文件。在这里,我需要的是让他全屏显示,因此设置成320*240像素大小。
得到这样一张图片后,打开我们的uC-GUI-BitmapConvert-Demo软件如下图所示:
点击file/open打开我们之前得到的bmp格式文件。
然后选择我们Image/Convert to/16 bit Color 565.
最后点击我们的file/save as 保存。保存格式为.c格式。
还有我们最关键的最后一步:
别选错了哦。
回到我们的工程项目中来则只需添加该C文件,再在函数中声明调用即可。
主任务代码如下:
#include "stm3210e_eval.h"
#include "GUI.h"
//#include "Icon1.h"
#if GUI_WINSUPPORT
#include "PROGBAR.h"
#include "LISTBOX.h"
#include "FRAMEWIN.h"
#include "BUTTON.h"
#endif
extern const GUI_BITMAP bmtest;
void MainTask(void)
{
GUI_Init();
GUI_DrawBitmap(&bmtest,0,0);
while(1);
}
生成的.c文件主要参数代码如下:
GUI_CONST_STORAGE GUI_BITMAP bmtest = {
320, // xSize
240, // ySize
640, // BytesPerLine
16, // BitsPerPixel
(unsigned char *)_actest, // Pointer to picture data
NULL, // Pointer to palette
GUI_DRAW_BMP565
};
显示效果图(手机比较渣,像素不行啊)