配置
- cubeMX
根据下图,将对应的引脚设置为OutPut - 电路原理图
- 导入 LCD 相关文件,将下面的文件发到 bsp 文件夹中。
程序编写
- 初始化
在main函数里,/* USER CODE BEGIN 2 * /和/ * USER CODE END 2 */之间初始化LCD.
//初始化LCD
LCD_Init();
LCD_Clear(Black);//清除为白色
LCD_SetBackColor(Black);//黑色背景
LCD_SetTextColor(White);//白色字体
- 常用函数
void LCD_DisplayChar(u8 Line, u16 Column, u8 Ascii);//输出字符
void LCD_DisplayStringLine(u8 Line, u8 *ptr);//输出字符串
上面是用来显示字符,下面是用来显示字符串的。不管是显示字符还是字符串,都需要指定显示的行数。从Line0到Line9都是可用的。显示字符时还需要指定列。LCD一个字符为24x16,LCD屏幕的宽度是范围是0~319,一个字符的占到了16,一行可以显示20个字符,因此将一个字符a显示在第—行第一列需要这么写:
void LCD_DisplayChar(Line0, 319 - 16, 'a');
空白的部分也可以用空格表示(不要用Tab键,本人用Tab背景色会有点奇怪,一行可以显示20个字符)
void LCD_DisplayStringLine(Line2, (uint8_t *)" hello ");
- 格式化输出
导入“stdio.h”,使用sprintf();
#include <stdio.h>
char buf[30] ;
sprintf((char *) buf,"%02d : %02d : %02d" ,hour, min,sec);
LCD_DisplayStringLine(Line5, (uint8_t *)buf);
常用的格式字符
- 输出字符:%c
- 输出字符串:%s
- 输出整型:%d
- 输出浮点数:%f
输出进制数
- 带先导的八进制:%#o
- 不带先导的八进制:%o
- 带先导的十六进制:%#x
- 不带先导的十六进制(小写):%x
- 不带先导的十六进制(大写):%X
特定格式
- 自定添0:%02d
- 指定小数位:%.2f
- 左对齐:%-d
- 百分号:%%
在main.c文件中编写处理LCD切换页面的函数(与按键配合,改变view的值)
void disp_proc(void)
{
if(view == 0)
{
char text[30];
sprintf(text," Date ");
LCD_DisplayStringLine(Line1,(uint8_t *)text);
}
if(view == 1)
{
char text[30];
sprintf(text," Para ");
LCD_DisplayStringLine(Line1,(uint8_t *)text);
}
if(view == 2)
{
}
}