蓝桥杯嵌入式(四)LCD使用

蓝桥杯嵌入式开发板上有一个2.4寸TFT-LCD显示屏,在比赛中是必须要使用的模块,关于它的驱动程序,官方已经提供了,我们只要学会如何使用就行了。

在lcd.h文件中,提供了很多操作LCD的函数,但在比赛中我们实际使用到的不多。根据以往的题目来看,LCD的仅仅是用来显示一些数据信息,输出状态等,对于更加深入的操作则没有涉及,所以我们掌握好下面这些函数的使用方法就足够了。

void STM3210B_LCD_Init(void);               //初始化函数
void LCD_SetTextColor(vu16 Color);          //改变字体颜色
void LCD_SetBackColor(vu16 Color);          //改变背景颜色
void LCD_ClearLine(u8 Line);                //清除行
void LCD_Clear(u16 Color);                  //清除界面,设置为想要的颜色
void LCD_DisplayChar(u8 Line, u16 Column, u8 Ascii);    //任何位置显示字符
void LCD_DisplayStringLine(u8 Line, u8 *ptr);           //行显示字符

在提供的工程模版中,已经对LCD进行了初始化,改变字体颜色和改变背景颜色的函数,可以根据题目要求显示想要的颜色。

LCD的数据手册也有提供,可以知道显示屏为320*240LCD_DisplayStringLine这个函数根据参数可知,是按行来显示的,显示屏共有Lin0~Lin9,每行可以显示20个字符。

我们通过一个简单的小程序来说明每个函数的具体使用方法

#include "stm32f10x.h"
#include "lcd.h"
#include "stdio.h"

u8 num=99;
//
void Display()
{
	char str[20];
	//方法一
	LCD_DisplayStringLine(Line0,"Blue");
	//方法二
	LCD_DisplayChar(Line2,320,'A');
	//方法三
	sprintf((char*)str,"%d",num);
	LCD_DisplayStringLine(Line4,str);
	//方法四
	LCD_SetTextColor(Red);
	LCD_DisplayChar(Line6,320,num/10+0x30);
	LCD_SetTextColor(Blue);
	LCD_DisplayChar(Line6,304,num%10+0x30);

}
//Main Body
int main(void)
{
	SysTick_Config(SystemCoreClock/1000);
	STM3210B_LCD_Init();
	LCD_Clear(White);
	LCD_SetBackColor(White);
	LCD_SetTextColor(Blue);
	while(1)
	{
		Display();
	}
}

代码展示了关于LCD的四种使用方法。

方法一:直接显示字符串,这种方法也可显示单个字符。

方法二:只能显示单个字符,但可以精确定位显示的位置。

方法三:用于显示变量,这种方法需要使用到sprintf()函数,就要添加#include "stdio.h"这个头文件。我们还要定义一个数组,用来存放需要显示的字符串(即第9行所示,LCD一行只能显示20个字符,所以数组大小定为20足够了),sprintf()函数的作用就是将指定的字符串存入数组中。

方法四:LCD屏高亮显示某个字符,使用方法三,某一行的颜色就会固定不变,如果需要一行中数字的颜色不同,就不能使用行显示,数字显示要转换成ascii码LCD_DisplayChar()函数每次只能操作一个字符,所以要显示大于两位的数时,需要对个位、十位等进行分离,然后分别显示。由于LCD_DisplayChar()函数是以ascii码形式传入参数的,所以在显示变量的时候,还需要进行ascii码转换,方法一加上0x30,方法二加上‘0’

把程序烧录进去就可以看到效果,关于LCD的使用方法大概就是这些,灵活运用即可。

发布了4 篇原创文章 · 获赞 0 · 访问量 202

猜你喜欢

转载自blog.csdn.net/Cola_Y/article/details/104299261