1. 程式人生 > >STM32學習筆記(五)LCD函式

STM32學習筆記(五)LCD函式

//x,y :起點座標  
//len :小數點後的位數
//size:字型大小,此處省略,預設1608字型
//color:顏色,此處僅保留前景色,可自行修改
//num:數值(0~4294967295); 

void LCD_ShowNum(u16 x,u16 y,float num,u8 len,u16 color)

  1. #include "led.h"  
  2. #include "delay.h"  
  3. #include "sys.h"  
  4. #include "usart.h"  
  5. #include "lcd.h"  
  6. void init()  
  7. {  
  8.     delay_init();            //延時函式初始化      
  9.     uart_init(9600);     //串列埠初始化為9600  
  10.     LED_Init();      //初始化與LED連線的硬體介面  
  11.     LCD_Init();  
  12.     POINT_COLOR=BLACK;       //定義畫筆顏色  
  13.     LCD_Clear(RED);  
  14. }  
  15.  int main(void)  
  16.  {   
  17.     u8 x=0,i;  
  18.     u16 ty;   
  19.     init();  
  20.     LCD_ShowString(30,40,200,24,24,"My first TFT ^_^");   
  21.     ty=70;  
  22.     for(i=1;i<=10;i++,ty+=20)  
  23.     {  
  24.         LCD_ShowString(20,ty,200,12,12,"the deep you love,the more you get");  
  25.     }  
  26.   while(1)   
  27.     {;}   
  28. }  

注意到初始化那,因為LCD初始化的時候有用到printf,所以一定要初始化串列埠,不然會宕機TAT

對於POINT_COLOR,顧名思義,而且也可以在庫中找到定義,就是定義畫筆顏色(相當於字型的顏色)

  1. u16 POINT_COLOR=0x0000; //畫筆顏色  
  2. u16 BACK_COLOR=0xFFFF;  //背景色  
我們定義為BLACK(黑色),也可以修改為別的顏色(對應相應的大寫英文)
LCD_Clear(color);  這個函式是清屏+填充顏色 (顏色同上)

LCD_ShowString()函式:

  1. //顯示字串  
  2. //x,y:起點座標  
  3. //width,height:區域大小    
  4. //size:字型大小  
  5. //*p:字串起始地址            
  6. void LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u8 *p)  

字型大小有3種選擇,12 ,16,24 前兩個引數好填,x,y就是起始座標,而區域大小填 (200,字型大小(3種選擇))最後一個引數應該很好理解就不多說了

最後我們令 while(1);卡住程式以顯示靜止的畫面

顏色庫

  1. //畫筆顏色  
  2. #define WHITE            0xFFFF  
  3. #define BLACK            0x0000     
  4. #define BLUE             0x001F    
  5. #define BRED             0XF81F  
  6. #define GRED             0XFFE0  
  7. #define GBLUE            0X07FF  
  8. #define RED              0xF800  
  9. #define MAGENTA          0xF81F  
  10. #define GREEN            0x07E0  
  11. #define CYAN             0x7FFF  
  12. #define YELLOW           0xFFE0  
  13. #define BROWN            0XBC40 //棕色  
  14. #define BRRED            0XFC07 //棕紅色  
  15. #define GRAY             0X8430 //灰色  


下面是一些畫圖函式

快速畫點

  1. //快速畫點  
  2. //x,y:座標  
  3. //color:顏色  
  4. void LCD_Fast_DrawPoint(u16 x,u16 y,u16 color)  

畫線
  1. //畫線  
  2. //x1,y1:起點座標  
  3. //x2,y2:終點座標    
  4. void LCD_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2)  
畫矩形,給出矩形對角線上的兩個端點座標即可。
  1. //畫矩形  
  2. void LCD_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2)  

畫圓
  1. //在指定位置畫一個指定大小的圓  
  2. //(x,y):中心點  
  3. //r    :半徑  
  4. void LCD_Draw_Circle(u16 x0,u16 y0,u8 r)  

在指定區域填充單一顏色(只能是指定矩形區域)而且給的的座標只能是 sx<=ex && sy<=ey
  1. //在指定區域內填充指定顏色  
  2. //區域大小:(xend-xsta+1)*(yend-ysta+1)  
  3. //xsta  
  4. //color:要填充的顏色  
  5. void LCD_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 color)  

在指定區域填充顏色塊,同上,只不過顏色要放到數組裡面傳過去
  1. //在指定區域內填充指定顏色塊            
  2. //(sx,sy),(ex,ey):填充矩形對角座標,區域大小為:(ex-sx+1)*(ey-sy+1)     
  3. //color:要填充的顏色  
  4. void LCD_Color_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 *color)  



還有一些好玩的函式

橫屏顯示

  1. //設定LCD顯示方向  
  2. //dir:0,豎屏;1,橫屏  
  3. void LCD_Display_Dir(u8 dir)  

開啟/關閉顯示
  1. //LCD開啟顯示  
  2. void LCD_DisplayOn(void)  
  3. //LCD關閉顯示  
  4. void LCD_DisplayOff(void)