文章目录
- 工程建立
- 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(排版后) */
扫描二维码关注公众号,回复:
9052754 查看本文章
//颜色
#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的情况下。