STM32學習筆記(五)LCD函式

2021-08-19 21:52:21 字數 3424 閱讀 3012

//x,y :起點座標  

//len :小數點後的位數

//size:字型大小,此處省略,預設1608字型

//color:顏色,此處僅保留前景色,可自行修改

//num:數值(0~4294967295); 

void 

lcd_shownum

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

[html] 

view plain

copy

#include "led.h"  

#include "delay.h"  

#include "sys.h"  

#include "usart.h"  

#include "lcd.h"  

void init()  

int main(void)  

while(1)   

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

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

[html] 

view plain

copy

u16 

point_color

=0x0000

; //畫筆顏色  

u16 back_color

=0xffff

;  //背景色  

我們定義為black(黑色),也可以修改為別的顏色(對應相應的大寫英文)

lcd_clear(color);  這個函式是清屏+填充顏色 (顏色同上)

lcd_showstring()函式:

[html] 

view plain

copy

//顯示字串  

//x,y:起點座標  

//width,height:區域大小    

//size:字型大小  

//*p:字串起始位址            

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);卡住程式以顯示靜止的畫面

顏色庫[html] 

view plain

copy

//畫筆顏色  

#define white            0xffff  

#define black            0x0000     

#define blue             0x001f    

#define bred             0xf81f  

#define gred             0xffe0  

#define gblue            0x07ff  

#define red              0xf800  

#define magenta          0xf81f  

#define green            0x07e0  

#define cyan             0x7fff  

#define yellow           0xffe0  

#define brown            0xbc40 //棕色  

#define brred            0xfc07 //棕紅色  

#define gray             0x8430 //灰色  

下面是一些畫圖函式

快速畫點

[html] 

view plain

copy

//快速畫點  

//x,y:座標  

//color:顏色  

void lcd_fast_drawpoint(u16 x,u16 y,u16 color)  

畫線[html] 

view plain

copy

//畫線  

//x1,y1:起點座標  

//x2,y2:終點座標    

void lcd_drawline(u16 x1, u16 y1, u16 x2, u16 y2)  

畫矩形,給出矩形對角線上的兩個端點座標即可。

[html] 

view plain

copy

//畫矩形  

void lcd_drawrectangle(u16 x1, u16 y1, u16 x2, u16 y2)  

畫圓[html] 

view plain

copy

//在指定位置畫乙個指定大小的圓  

//(x,y):中心點  

//r    :半徑  

void lcd_draw_circle(u16 x0,u16 y0,u8 r)  

在指定區域填充單一顏色(只能是指定矩形區域)而且給的的座標只能是 sx<=ex && sy<=ey

[html] 

view plain

copy

//在指定區域內填充指定顏色  

//區域大小:(xend-xsta+1)*(yend-ysta+1)  

//xsta  

//color:要填充的顏色  

void lcd_fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 color)  

在指定區域填充顏色塊,同上,只不過顏色要放到陣列裡面傳過去

[html] 

view plain

copy

//在指定區域內填充指定顏色塊            

//(sx,sy),(ex,ey):填充矩形對角座標,區域大小為:(ex-sx+1)*(ey-sy+1)     

//color:要填充的顏色  

void lcd_color_fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 *color)  

還有一些好玩的函式

橫屏顯示

[html] 

view plain

copy

//設定lcd顯示方向  

//dir:0,豎屏;1,橫屏  

void lcd_display_dir(u8 dir)  

開啟/關閉顯示

[html] 

view plain

copy

//lcd開啟顯示  

void lcd_displayon(void)  

//lcd關閉顯示  

void lcd_displayoff(void)  

STM32學習 LCD的使用

原理 lcd即液晶顯示器,給液晶施加電場,會改變它的分子排列,從而改變光線傳播方向,配合偏振光片,它就具有控制光線透過率的作用,再配合彩色濾光片,就能改變某一顏色透光量的多少。做出可控紅 綠 藍光輸出強度的顯示結構,組成乙個顯示單位,通過控制紅綠藍的強度,可以使該單位混合輸出不同的色彩,這樣的乙個顯...

STM32學習筆記 五 NVIC

三 中斷程式設計 f407在核心水平上搭載了乙個異常響應系統,支援為數眾多的系統異常和中斷,其中系統異常有10個,中斷有82個。nvic是巢狀向量中斷控制器,控制著整個晶元中斷相關的功能,它跟核心緊密耦合,是核心裡面的乙個外設。在配置中斷的時候一般只用iser icer和ip這三個暫存器,iser用...

STM32學習筆記

剛到公司實習,要學習stm32開發,boss給了一塊戰艦開發板,讓我自己寫乙個功能要用在公司的產品上。難啊。以前根本沒接觸過stm32,只能一步一步慢慢來,利用晚上利用週末惡補一下。哎,算是為了大學前兩年還債吧。一 跑馬燈實驗 gpio輸出 實驗環境 keil4 實驗平台 戰艦stm32開發板 gp...