怎么获得合适自己屏幕巨细的图片,自己在搞TFT显现图片时浪费了很多时刻,现把经历中总结下来的用法总结如下,供各位道上的学习TFT的参阅。
在你所学的arm开发板中,我用的是fm3(富士通mb9b系列的),假如例程中显现图片是用for(i=0;i
{
Write_data(tupian[i];)
}
咱们都知道色彩是以双字节来界说的,比如说0x0000表明black;
假如你的例程中并不是write_data(高,低);(我记住stm32系列便是这么写的)。那么上边的i就要求用0xxxxx这种双字节的数组来表明。不必再改总线,还要将数组移位,自己以为假如例程不是你写的就别来回改了,没必要,
先来看看我的例程,如下
#define black 0x0000
#define blue 0x001F
#define green 0x07E0
#define cyan 0x07FF
#define red 0xF800
#define yellow 0xFFE0
#define white 0xFFFF
#define LCD_WIDTH 240
#define LCD_HEIGHT 320
**************************************************************************
void DrawPicture(uint xs,uint xe,uint ys,uint ye)
{
unsigned long int i;
SetWindow(xs, xe, ys, ye);
SetWindow_xy(xs,ys);
write_command(0x0022);
for (i=0;i<(xe*ye);i++)
{
write_data(qq[i]);
// ili9320_Delay(50);
}
//Set_Cs;
}
void write_command(uint16_t cmd)
{
LCD_RS = 0;
*(LCD_BASE) = cmd;
}
//————————-LCD write data ————————-
void write_data(uint16_t data)
{
LCD_RS = 1;
__no_operation();
__no_operation();
//*(LCD_BASE) =(uint8_t)data;
//*(LCD_BASE) =(uint8_t)data<<8;
*(LCD_BASE) =data;
}
int32_t main(void)
{
FM3_GPIO->PFR4 = 0x0000; // Poart4 for gpio
FM3_GPIO->PDOR4 = 0x003C; // P42-P45 output 1
FM3_GPIO->DDR4 = 0x003C; // P42-P45: LED1-LED4, output;
// P40,P41,P48:key2,key3,key4, input
FM3_GPIO->PFR7 = 0x0000; // Poart7 for gpio
FM3_GPIO->DDR7 = 0x0008; // P73, output;
FM3_GPIO->PFR6 = 0x0000; // Poart6 for gpio
FM3_GPIO->DDR6 = 0x0024; // P64:key1, input; P65 LCD back light, output
// P62, LCD RS select,output
init_extbus(); // 初始化外部总线
delay(10);
LCD_BKLIGHT = 1;
delay(5);
TM280_HX8347G_Initial_code(); //初始化LCD屏,清成白色
delay(10);
clr_lcd();
DrawPicture(0,239,0,319); //x轴的起、末:Y轴的起末
像以上按着我的例程来说,在屏幕上显现图片时问题就呈现了,假如直接用image2lcd很惋惜的告诉您,它生成的图片数组是单字节的(0xxx),让它显现在屏幕上底子就不可,假如手上有图片,但是你发现当你用bmp2rgb软件来转化时发现转化完后,数组里竟是空的,你开端置疑软件真烂?试一次仍是这样,换台电脑成果仍是相同。假如你特意找一张24位的bitmap(bmp)图片,你再用bmp2rgb来转化发现成功了,而且都是双字节数组,然后开端研讨为什么?
其实,在我现在看来,bmp2rgb软件只能转化24位的bmp格局的数组而且是单字节,假如咱们需求双字节的,但手上仅有一个16位图的图片(用bmp2rg翻开一开便知。)好了,假如此两款软件你一起具有,先将此16位的图片用image2lcd翻开如图
再转化成24位的bmp格局图,再将生成的图片用bmp2rgb软件翻开
将宽高设置为屏幕的巨细像素,点convert,ok!功德圆满!