【藍橋杯嵌入式】移植LCD程序+建立工程+LCD程序分析

工程建立

1 MCU型號選擇:(如果沒有Legacy Device Database 戳這裏

在這裏插入圖片描述

2 文件夾格式:

在這裏插入圖片描述

3 **工程樹:(所有文件可以在官方提供的LCD裏可以找到)

ps:Define也可以直接抄裏面的
STM32F10X_MD,USE_STDPERIPH_DRIVER,_1010MODE**
在這裏插入圖片描述

4 Option of target...選項中選中Debug標籤將設置改爲圖中所示狀態後點擊。Settings

在這裏插入圖片描述

5 將設定調整到圖片所示的狀態後點擊Flash Download

在這裏插入圖片描述

6 點擊Add添加調試算法文件,這裏已經添加。

在這裏插入圖片描述

7 沒有算法文件戳這裏。

在這裏插入圖片描述

8 然後就可以下載程序了。( ̄▽ ̄)

在這裏插入圖片描述


程序分析

/* 液晶格式:320*240(水平×豎直以下都是) 字體格式:16*24 行列 :20*9(排版後) */

//顏色
#define White          0xFFFF
#define Black          0x0000
#define Grey           0xF7DE
#define Blue           0x001F
#define Blue2          0x051F
#define Red            0xF800
#define Magenta        0xF81F
#define Green          0x07E0
#define Cyan           0x7FFF
#define Yellow         0xFFE0
//行數
#define Line0          0
#define Line1          24
#define Line2          48
#define Line3          72
#define Line4          96
#define Line5          120
#define Line6          144
#define Line7          168
#define Line8          192
#define Line9          216
//橫豎
#define Horizontal     0x00
#define Vertical       0x01

SysTick_Config(SystemCoreClock/1000);	//設定每1ms觸發一次滴答定時器中斷
void Delay_Ms(u32 nTime);				//延時 n ms
void STM3210B_LCD_Init(void);			//LCD初始化
LCD_Clear(Blue);						//清除一切至全藍色
LCD_SetBackColor(Blue);					//設定背景顏色
LCD_SetTextColor(White);				//設定字體顏色
void LCD_DrawLine(u8 Xpos, u16 Ypos, u16 Length, u8 Direction);
LCD_DrawLine(120,0,320,Horizontal);		//畫直線
void LCD_DrawRect(u8 Xpos, u16 Ypos, u8 Height, u16 Width);
LCD_DrawRect(70,210,100,100);			//畫矩形
void LCD_DrawCircle(u8 Xpos, u16 Ypos, u16 Radius);
LCD_DrawCircle(120,160,50);				//畫圓
void LCD_DisplayStringLine(u8 Line, u8 *ptr);
LCD_DisplayStringLine(Line5 ,(unsigned char *)"12345678901234567890");
										//單行顯示字符串
void LCD_ClearLine(u8 Line);			//清除某一行
void LCD_SetCursor(u8 Xpos, u16 Ypos);	//設置光標,對部分函數有影響

//先寫這麼多吧






ps:滴答定時器
延時函數(延時 n ms)
在這裏插入圖片描述
中斷服務函數
在這裏插入圖片描述

SysTick_Config的參數,其實就是一個時鐘次數,叫systick重裝定時器的值。意思就是我要多少個1/fosc 時間後中斷一下。
根據學過的物理中的時間與頻率的公式:fosc=1/T T=1/fosc ,fosc爲系統的頻率。
如果STM32時鐘頻率爲:72MHz,每次的時間爲:T=1/72MHz。1秒鐘爲:1/(每次的時間)=1/(1/72MHz)=72 000 000次。1MHz是:1000 000。
反過來講。SysTick_Config(72000)代表:72000*(1/72MHz)=1/1000=1(ms)。即定時爲1ms。
如果需要1S則,可以通一設置一個全局變量,然後定初值得爲1000,這樣,每個systick中斷一次,這個全局變量減1,減到0,即systick中斷1000次,時間
爲:1ms1000=1S。從而實現1S的定時。
因爲SysTick定時器是:24位的,最大定時時間爲:2的24次方
(1/72MHz)的時間,這裏系統頻率爲:72MHz的情況下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章