一、准备
原理图
LCD引脚较多,配置也较麻烦,可以直接使用官方LCD例程:HAL_06_LCD。

二、CubeMX配置

三、代码分析
通过lcd.h文件可以看到有这些函数。

LCD_Clear函数
LCD清屏函数,这个函数可以将屏幕上的所有显示清楚然后再设置屏幕背景颜色。
void LCD_Clear(u16 Color)
{
u32 index = 0;
LCD_SetCursor(0x00, 0x0000);
LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
for(index = 0; index < 76800; index++)
{
LCD_WriteRAM(Color);
}
}
可设置的颜色
/* LCD color */
#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
行数
Line0-9,一共10行。屏幕行列参数240*360.
#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
显示字符串函数
第一个参数为行数,第二个参数为要显示的字符串
void LCD_DisplayStringLine(u8 Line, u8 *ptr)
{
u32 i = 0;
u16 refcolumn = 319;//319;
while ((*ptr != 0) && (i < 20)) // 20
{
LCD_DisplayChar(Line, refcolumn, *ptr);
refcolumn -= 16;
ptr++;
i++;
}
}
例:
LCD_DisplayStringLine(Line2, (uint8_t *)" LCD Test ");
设置字体颜色
void LCD_SetTextColor(vu16 Color)
{
TextColor = Color;
}
设置字体背景颜色
void LCD_SetBackColor(vu16 Color)
{
BackColor = Color;
}
sprintf函数
C的标准库函数,字符串格式化函数,主要功能是把格式化的数据写入某个字符串中,即发送格式化输出到string所指向的字符串。
int sprintf(char *string,const char *format,...)
例:这是一个ADC程序的部分代码,将要输出的字符串格式化后存入字符串buf,然后利用LCD_DisplayStringLine函数输出到LCD上。
char buf[20];
sprintf(buf, " VAL:%.2fV", getADC1()*3.3/4096);
HAL_Delay(100);
LCD_DisplayStringLine(Line3, (uint8_t *)buf);