蓝桥杯_嵌入式: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个字符

例子为:

#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       ");   为显示字符串的函数<line4为第四行>


二、显示变量:

由于不能单独使用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之间存在冲突,本文就不展开讲解。

  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值