蓝桥杯_嵌入式:LCD的使用教程(库函数)

目录

前言

一、显示字符串:

二、显示变量:



前言

LCD作为蓝桥杯比赛中一个必不可少的部分,

这里我们将通过LCD的 1.显示字符串 2.显示变量


由于比赛资源包中的LCD函数已经编写完成,我们只要学会调用lcd.h中的函数就可以了。

/*----- High layer function -----*/
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_SetCursor(u8 Xpos, u16 Ypos);
void LCD_DrawChar(u8 Xpos, u16 Ypos, uc16 *c);
void LCD_DisplayChar(u8 Line, u16 Column, u8 Ascii);
void LCD_DisplayStringLine(u8 Line, u8 *ptr);
void LCD_SetDisplayWindow(u8 Xpos, u16 Ypos, u8 Height, u16 Width);
void LCD_WindowModeDisable(void);
void LCD_DrawLine(u8 Xpos, u16 Ypos, u16 Length, u8 Direction);
void LCD_DrawRect(u8 Xpos, u16 Ypos, u8 Height, u16 Width);
void LCD_DrawCircle(u8 Xpos, u16 Ypos, u16 Radius);
void LCD_DrawMonoPict(uc32 *Pict);
void LCD_WriteBMP(u32 BmpAddress);
void LCD_DrawBMP(u32 BmpAddress);
void LCD_DrawPicture(const u8* picture);

/*----- Medium layer function -----*/
void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue);
u16 LCD_ReadReg(u8 LCD_Reg);
void LCD_WriteRAM_Prepare(void);
void LCD_WriteRAM(u16 RGB_Code);
u16 LCD_ReadRAM(void);
void LCD_PowerOn(void);
void LCD_DisplayOn(void);
void LCD_DisplayOff(void);

/*----- Low layer function -----*/
void LCD_CtrlLinesConfig(void);

void LCD_BusIn(void);
void LCD_BusOut(void);

在比赛中常用的函数:

void STM3210B_LCD_Init(void);    //LCD的初始化
void LCD_SetTextColor(vu16 Color);    //LCD字体的颜色
void LCD_SetBackColor(vu16 Color);     //LCD背景板的颜色
void LCD_ClearLine(u8 Line);            // 清除行
void LCD_DisplayStringLine(u8 Line, u8 *ptr); // 行显示字符串

一、显示字符串:

LCD的行显示总共有10行(line0~line9,每一行当中可以显示20个字符

蓝桥杯_嵌入式:LCD的使用教程(库函数)_第1张图片

例子为:

#include "stm32f10x.h"
#include "lcd.h"
#include "led.h"
#include "key.h"

u32 TimingDelay = 0;

void Delay_Ms(u32 nTime);

void Display(u8 mean);

int main(void)
{
	u8 str[20];
	u8 n=1;
	float m=3.14;
	SysTick_Config(SystemCoreClock/1000);
    STM3210B_LCD_Init();      //1
	LCD_Clear(Black);
	LCD_SetBackColor(Black);  //2
	LCD_SetTextColor(White);  //3
    LCD_DisplayStringLine(Line4,(unsigned char *)"       HELLO WORLD       ");	
	
	while(1);
}




void Delay_Ms(u32 nTime)
{
	TimingDelay = nTime;
	while(TimingDelay != 0);	
}

LCD_DisplayStringLine(Line4,(unsigned char *)"       HELLO WORLD       ");   为显示字符串的函数


二、显示变量:

由于不能单独使用LCD_DisplayStringLine()函数显示变量,我们要引入头文件"stdio.h"使用sprintf函数。

例子:

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

u32 TimingDelay = 0;

void Delay_Ms(u32 nTime);

void Display(u8 mean);

int main(void)
{
	u8 str[20];
	u8 n=1;
	float pi=3.14;
	SysTick_Config(SystemCoreClock/1000);
    STM3210B_LCD_Init();
	LCD_Clear(Black);
	LCD_SetBackColor(Black);
	LCD_SetTextColor(White);
	
	Delay_Ms(200);	

	while(1)
	{
		
	    sprintf((char*)str,"n=%d : pi=%lf",n,pi);
		LCD_SetBackColor(Black);
	    LCD_DisplayStringLine(Line2,str);
		n++;
        Delay_Ms(500);
	}
}




void Delay_Ms(u32 nTime)
{
	TimingDelay = nTime;
	while(TimingDelay != 0);	
}

注意:要先声明"stdio.h"的头文件

          LCD与LED之间存在冲突,本文就不展开讲解。

你可能感兴趣的:(蓝桥杯_嵌入式(库函数),蓝桥杯,stm32,单片机,经验分享,嵌入式硬件)