文章目錄
- 工程建立
- 1 **MCU型號選擇:(如果沒有Legacy Device Database [戳這裏](https://blog.csdn.net/weixin_43444989/article/details/103311918))**
- 2 **文件夾格式:**
- 3 **工程樹:(所有文件可以在官方提供的LCD裏可以找到)
- 4 **在`Option of target...`選項中選中`Debug`標籤將設置改爲圖中所示狀態後點擊。`Settings`**
- 5 **將設定調整到圖片所示的狀態後點擊`Flash Download`。**
- 6 **點擊`Add`添加調試算法文件,這裏已經添加。**
- 7 [**沒有算法文件戳這裏。**](https://www.cnblogs.com/huanzxj/p/6346797.html)
- 8 **然後就可以下載程序了。( ̄▽ ̄)**
- 程序分析
工程建立
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的情況下。