目录
一.LCD的原理图
二.STM32CubeMX的配置
即把对应的引脚设为输出状态即可,为了方便以后的调试我额外初始化了LED灯切换状态的引PD2,LED灯的教程具体见上一节。
三.代码介绍
基本的LCD代码
LCD_Init();//LCD的初始化
LCD_Clear(Blue);//刷新屏幕为蓝色
LCD_SetTextColor(White);//设置字体颜色为白色
LCD_SetBackColor(Blue);//设置背景颜色为蓝色
LCD_DisplayChar(Line, Column,Ascii);//在第Line行,column列写字符Ascii
LCD_DisplayStringLine(u8 Line, u8 *ptr);//在第Line行显示字符串ptr
字符高亮显示的代码
void LCDlight(uint8_t*leg1,uint16_t pos,uint8_t Line,uint16_t Color)
{
int j=0;
while(leg1[j]!= '\0')
{
if(j!=pos)
{
LCD_DisplayChar(Line,256-16*j,leg1[j]);
}
j++;
}
LCD_SetBackColor(Color);
LCD_DisplayChar(Line,256-16*pos,leg1[pos]);
LCD_SetBackColor(Blue);
}
1.pos是高亮的字符位置,其实质是先将背景设为黄色,然后再设置对应位置的字符背景为黄色,再将背景切换为蓝色。因为设置背景颜色的函数只作用于函数之后的文字,所以能够达成这样的效果。
2.因为其LCD屏幕的分辨率为240*320,而一个字的宽度为16,所以256是首行缩进四个字符
四.与LED结合的例子
初始化
uint8_t leg[20];
uint8_t i=1;
LCD_Init();
LCD_Clear(Blue);
主函数
HAL_Delay(500);
LCD_SetTextColor(White);
LCD_SetBackColor(Blue);
sprintf((char*)leg,"The LED is%d",i);
LCDlight(leg,11,Line2,Yellow);
LEDDisp(i);
i++;
if(i>8)
i = 1;
LED的函数可以见前一个我的LED那篇文章