基于STM32F429的LTDC LCD(RGB屏)探索

笔者使用的是STM32F429开发板的LTDC接口驱动RGBLCD,对其功能进行探索和开发。

话不多说,直接上效果。
字符串形成的爱心填充颜色形成的汉字
利用圆形制作动画
然后是自己的代码`//Ñ©
LCD_Clear(BLACK);
LTDC_Fill((lcdltdc.width-1)*1/9,(lcdltdc.height-1)*1/15,(lcdltdc.width-1)*8/9,(lcdltdc.height-1)*2/15,WHITE);
LTDC_Fill((lcdltdc.width-1)*4/9,(lcdltdc.height-1)*2/15,(lcdltdc.width-1)*5/9,(lcdltdc.height-1)*7/15,WHITE);
LTDC_Fill((lcdltdc.width-1)*1/9,(lcdltdc.height-1)*3/15,(lcdltdc.width-1)*8/9,(lcdltdc.height-1)*4/15,WHITE);
LTDC_Fill((lcdltdc.width-1)*1/9,(lcdltdc.height-1)*4/15,(lcdltdc.width-1)*2/9,(lcdltdc.height-1)*7/15,WHITE);
LTDC_Fill((lcdltdc.width-1)*7/9,(lcdltdc.height-1)*4/15,(lcdltdc.width-1)*8/9,(lcdltdc.height-1)*7/15,WHITE);
delay_ms(500);
LCD_Clear(BLACK);
LTDC_Fill((lcdltdc.width-1)*1/9,(lcdltdc.height-1)*8/15,(lcdltdc.width-1)*8/9,(lcdltdc.height-1)*9/15,WHITE);
LTDC_Fill((lcdltdc.width-1)*1/9,(lcdltdc.height-1)*12/15,(lcdltdc.width-1)*8/9,(lcdltdc.height-1)*13/15,WHITE);
LTDC_Fill((lcdltdc.width-1)*2/9,(lcdltdc.height-1)*10/15,(lcdltdc.width-1)*7/9,(lcdltdc.height-1)*11/15,WHITE);
LTDC_Fill((lcdltdc.width-1)*7/9,(lcdltdc.height-1)*9/15,(lcdltdc.width-1)*8/9,(lcdltdc.height-1)*12/15,WHITE);
delay_ms(500);
LCD_Clear(BLACK);
LTDC_Fill((lcdltdc.width-1)*5/18,(lcdltdc.height-1)*9/30,(lcdltdc.width-1)*7/18,(lcdltdc.height-1)*21/60,WHITE);
LTDC_Fill((lcdltdc.width-1)*5/18,(lcdltdc.height-1)*23/60,(lcdltdc.width-1)*7/18,(lcdltdc.height-1)*13/30,WHITE);
LTDC_Fill((lcdltdc.width-1)*11/18,(lcdltdc.height-1)*9/30,(lcdltdc.width-1)*13/18,(lcdltdc.height-1)*21/60,WHITE);
LTDC_Fill((lcdltdc.width-1)*11/18,(lcdltdc.height-1)*23/60,(lcdltdc.width-1)*13/18,(lcdltdc.height-1)*13/30,WHITE);
delay_ms(500);
LTDC_Fill((lcdltdc.width-1)*1/9,(lcdltdc.height-1)*1/15,(lcdltdc.width-1)*8/9,(lcdltdc.height-1)2/15,WHITE);
LTDC_Fill((lcdltdc.width-1)4/9,(lcdltdc.height-1)2/15,(lcdltdc.width-1)5/9,(lcdltdc.height-1)7/15,WHITE);
LTDC_Fill((lcdltdc.width-1)1/9,(lcdltdc.height-1)3/15,(lcdltdc.width-1)8/9,(lcdltdc.height-1)4/15,WHITE);
LTDC_Fill((lcdltdc.width-1)1/9,(lcdltdc.height-1)4/15,(lcdltdc.width-1)2/9,(lcdltdc.height-1)7/15,WHITE);
LTDC_Fill((lcdltdc.width-1)7/9,(lcdltdc.height-1)4/15,(lcdltdc.width-1)8/9,(lcdltdc.height-1)7/15,WHITE);
LTDC_Fill((lcdltdc.width-1)1/9,(lcdltdc.height-1)8/15,(lcdltdc.width-1)8/9,(lcdltdc.height-1)9/15,WHITE);
LTDC_Fill((lcdltdc.width-1)1/9,(lcdltdc.height-1)12/15,(lcdltdc.width-1)8/9,(lcdltdc.height-1)13/15,WHITE);
LTDC_Fill((lcdltdc.width-1)2/9,(lcdltdc.height-1)10/15,(lcdltdc.width-1)7/9,(lcdltdc.height-1)11/15,WHITE);
LTDC_Fill((lcdltdc.width-1)7/9,(lcdltdc.height-1)9/15,(lcdltdc.width-1)8/9,(lcdltdc.height-1)12/15,WHITE);
delay_ms(1500);
//Ñ©
LCD_Clear(YELLOW);
LTDC_Fill((lcdltdc.width-1)1/9,(lcdltdc.height-1)1/15,(lcdltdc.width-1)8/9,(lcdltdc.height-1)2/15,WHITE);
LTDC_Fill((lcdltdc.width-1)4/9,(lcdltdc.height-1)2/15,(lcdltdc.width-1)5/9,(lcdltdc.height-1)7/15,WHITE);
LTDC_Fill((lcdltdc.width-1)1/9,(lcdltdc.height-1)3/15,(lcdltdc.width-1)8/9,(lcdltdc.height-1)4/15,WHITE);
LTDC_Fill((lcdltdc.width-1)1/9,(lcdltdc.height-1)4/15,(lcdltdc.width-1)2/9,(lcdltdc.height-1)7/15,WHITE);
LTDC_Fill((lcdltdc.width-1)7/9,(lcdltdc.height-1)4/15,(lcdltdc.width-1)8/9,(lcdltdc.height-1)7/15,WHITE);
LTDC_Fill((lcdltdc.width-1)1/9,(lcdltdc.height-1)8/15,(lcdltdc.width-1)8/9,(lcdltdc.height-1)9/15,WHITE);
LTDC_Fill((lcdltdc.width-1)1/9,(lcdltdc.height-1)12/15,(lcdltdc.width-1)8/9,(lcdltdc.height-1)13/15,WHITE);
LTDC_Fill((lcdltdc.width-1)2/9,(lcdltdc.height-1)10/15,(lcdltdc.width-1)7/9,(lcdltdc.height-1)11/15,WHITE);
LTDC_Fill((lcdltdc.width-1)7/9,(lcdltdc.height-1)9/15,(lcdltdc.width-1)8/9,(lcdltdc.height-1)12/15,WHITE);
LTDC_Fill((lcdltdc.width-1)5/18,(lcdltdc.height-1)9/30,(lcdltdc.width-1)7/18,(lcdltdc.height-1)21/60,WHITE);
LTDC_Fill((lcdltdc.width-1)5/18,(lcdltdc.height-1)23/60,(lcdltdc.width-1)7/18,(lcdltdc.height-1)13/30,WHITE);
LTDC_Fill((lcdltdc.width-1)11/18,(lcdltdc.height-1)9/30,(lcdltdc.width-1)13/18,(lcdltdc.height-1)21/60,WHITE);
LTDC_Fill((lcdltdc.width-1)11/18,(lcdltdc.height-1)23/60,(lcdltdc.width-1)13/18,(lcdltdc.height-1)13/30,WHITE);
delay_ms(1500);
//°®ÐÄ
LCD_Clear(WHITE);
POINT_COLOR=RED;
LCD_ShowString(200,360,240,100,24,"
");
LCD_ShowString(190,380,240,100,24,"
");
LCD_ShowString(180,400,240,100,24,“");
LCD_ShowString(180,420,240,100,24,"
”);
LCD_ShowString(193,440,240,100,24,"
");
LCD_ShowString(207,460,240,100,24,"
");
LCD_ShowString(222,480,240,100,24,"
");
LCD_ShowString(238,500,240,100,24,"
");
LCD_ShowString(260,520,240,100,24,"
");
LCD_ShowString(285,540,240,100,24,"
");
delay_ms(5000);
LCD_Clear(WHITE);
POINT_COLOR=BLACK;
LCD_DrawLine(0,0 , (lcdltdc.width-1),(lcdltdc.height-1));
LCD_DrawLine(0,(lcdltdc.height-1),(lcdltdc.width-1),0);
LCD_Circle_Fill((lcdltdc.width-1)/2,(lcdltdc.height-1)/2,100,RED);
LCD_Draw_Circle((lcdltdc.width-1)/2,(lcdltdc.height-1)/2,100,BLACK);
//3
LCD_Clear(WHITE);
LTDC_Fill((lcdltdc.width-1)*1/9,(lcdltdc.height-1)*1/15,(lcdltdc.width-1)*8/9,(lcdltdc.height-1)*3/15,BLACK);
LTDC_Fill((lcdltdc.width-1)*1/9,(lcdltdc.height-1)*6/15,(lcdltdc.width-1)*8/9,(lcdltdc.height-1)*8/15,BLACK);
LTDC_Fill((lcdltdc.width-1)*1/9,(lcdltdc.height-1)*12/15,(lcdltdc.width-1)*8/9,(lcdltdc.height-1)*14/15,BLACK);
LTDC_Fill((lcdltdc.width-1)*6/9,(lcdltdc.height-1)*3/15,(lcdltdc.width-1)*8/9,(lcdltdc.height-1)*12/15,BLACK);
delay_ms(1000);
//2
LCD_Clear(WHITE);
LTDC_Fill((lcdltdc.width-1)*1/9,(lcdltdc.height-1)*1/15,(lcdltdc.width-1)*8/9,(lcdltdc.height-1)*3/15,BLACK);
LTDC_Fill((lcdltdc.width-1)*1/9,(lcdltdc.height-1)*6/15,(lcdltdc.width-1)*8/9,(lcdltdc.height-1)*8/15,BLACK);
LTDC_Fill((lcdltdc.width-1)*1/9,(lcdltdc.height-1)*12/15,(lcdltdc.width-1)*8/9,(lcdltdc.height-1)*14/15,BLACK);
LTDC_Fill((lcdltdc.width-1)*6/9,(lcdltdc.height-1)*3/15,(lcdltdc.width-1)*8/9,(lcdltdc.height-1)*8/15,BLACK);
LTDC_Fill((lcdltdc.width-1)*1/9,(lcdltdc.height-1)*6/15,(lcdltdc.width-1)*3/9,(lcdltdc.height-1)*14/15,BLACK);
delay_ms(1000);
//1
LCD_Clear(WHITE);
LTDC_Fill((lcdltdc.width-1)*7/18,(lcdltdc.height-1)*1/15,(lcdltdc.width-1)*11/18,(lcdltdc.height-1)*14/15,BLACK);
delay_ms(1000);
//对角线

LCD_Clear(WHITE);
POINT_COLOR=BLACK;
LCD_DrawLine(0,0 , (lcdltdc.width-1),(lcdltdc.height-1));
LCD_DrawLine(0,(lcdltdc.height-1),(lcdltdc.width-1),0);
delay_ms(600);

//圆放缩
LCD_Clear(WHITE);
LCD_Circle_Fill((lcdltdc.width-1)/2,(lcdltdc.height-1)/2,50,RED);
delay_ms(300);
LCD_Circle_Fill((lcdltdc.width-1)/2,(lcdltdc.height-1)/2,100,RED);
delay_ms(300);
LCD_Circle_Fill((lcdltdc.width-1)/2,(lcdltdc.height-1)/2,150,RED);
delay_ms(300);
LCD_Circle_Fill((lcdltdc.width-1)/2,(lcdltdc.height-1)/2,200,RED);
delay_ms(300);
LCD_Circle_Fill((lcdltdc.width-1)/2,(lcdltdc.height-1)/2,250,RED);
delay_ms(300);
LCD_Clear(WHITE);
LCD_Circle_Fill((lcdltdc.width-1)/2,(lcdltdc.height-1)/2,200,RED);
delay_ms(300);
LCD_Clear(WHITE);
LCD_Circle_Fill((lcdltdc.width-1)/2,(lcdltdc.height-1)/2,150,RED);
delay_ms(300);
LCD_Clear(WHITE);
LCD_Circle_Fill((lcdltdc.width-1)/2,(lcdltdc.height-1)/2,100,RED);
delay_ms(300);
LCD_Clear(WHITE);
LCD_Circle_Fill((lcdltdc.width-1)/2,(lcdltdc.height-1)/2,50,RED);
delay_ms(300);
LCD_Clear(WHITE);
LCD_Circle_Fill((lcdltdc.width-1)/2,(lcdltdc.height-1)/2,20,RED);
delay_ms(300);
//球移动
LCD_Clear(LGRAY);
LCD_Circle_Fill(50,50,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(110,70,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(170,90,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(230,110,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(290,130,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(350,150,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(410,170,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(470,190,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(530,210,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(549,270,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(530,330,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(470,350,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(410,370,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(350,390,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(290,410,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(230,430,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(170,450,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(110,470,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(50,490,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(50,550,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(110,570,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(170,590,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(230,610,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(290,630,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(350,650,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(410,670,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(470,690,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(530,710,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(549,770,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(530,830,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(470,850,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(410,870,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(350,890,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(290,910,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(230,930,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(170,950,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(110,970,50,YELLOW);
delay_ms(100);
LCD_Circle_Fill(50,990,50,YELLOW);
delay_ms(100);
//球回弹
LCD_Circle_Fill(50,990,50,RED);
delay_ms(100);
LCD_Circle_Fill(110,970,50,RED);
delay_ms(100);
LCD_Circle_Fill(170,950,50,RED);
delay_ms(100);
LCD_Circle_Fill(230,930,50,RED);
delay_ms(100);
LCD_Circle_Fill(290,910,50,RED);
delay_ms(100);
LCD_Circle_Fill(350,890,50,RED);
delay_ms(100);
LCD_Circle_Fill(410,870,50,RED);
delay_ms(100);
LCD_Circle_Fill(470,850,50,RED);
delay_ms(100);
LCD_Circle_Fill(530,830,50,RED);
delay_ms(100);
LCD_Circle_Fill(549,770,50,RED);
delay_ms(100);
LCD_Circle_Fill(530,710,50,RED);
delay_ms(100);
LCD_Circle_Fill(470,690,50,RED);
delay_ms(100);
LCD_Circle_Fill(410,670,50,RED);
delay_ms(100);
LCD_Circle_Fill(350,650,50,RED);
delay_ms(100);
LCD_Circle_Fill(290,630,50,RED);
delay_ms(100);
LCD_Circle_Fill(230,610,50,RED);
delay_ms(100);
LCD_Circle_Fill(170,590,50,RED);
delay_ms(100);
LCD_Circle_Fill(110,570,50,RED);
delay_ms(100);
LCD_Circle_Fill(50,550,50,RED);
delay_ms(100);
LCD_Circle_Fill(50,490,50,RED);
delay_ms(100);
LCD_Circle_Fill(110,470,50,RED);
delay_ms(100);
LCD_Circle_Fill(170,450,50,RED);
delay_ms(100);
LCD_Circle_Fill(230,430,50,RED);
delay_ms(100);
LCD_Circle_Fill(290,410,50,RED);
delay_ms(100);
LCD_Circle_Fill(350,390,50,RED);
delay_ms(100);
LCD_Circle_Fill(410,370,50,RED);
delay_ms(100);
LCD_Circle_Fill(470,350,50,RED);
delay_ms(100);
LCD_Circle_Fill(530,330,50,RED);
delay_ms(100);
LCD_Circle_Fill(549,270,50,RED);
delay_ms(100);
LCD_Circle_Fill(530,210,50,RED);
delay_ms(100);
LCD_Circle_Fill(470,190,50,RED);
delay_ms(100);
LCD_Circle_Fill(410,170,50,RED);
delay_ms(100);
LCD_Circle_Fill(350,150,50,RED);
delay_ms(100);
LCD_Circle_Fill(290,130,50,RED);
delay_ms(100);
LCD_Circle_Fill(230,110,50,RED);
delay_ms(100);
LCD_Circle_Fill(170,90,50,RED);
delay_ms(100);
LCD_Circle_Fill(110,70,50,RED);
delay_ms(100);
LCD_Circle_Fill(50,50,50,RED);
delay_ms(100); `

发布了1 篇原创文章 · 获赞 1 · 访问量 24

猜你喜欢

转载自blog.csdn.net/Daminate/article/details/104332716
今日推荐