嵌入式蓝桥杯LCD屏幕操作 LCD显示RTC时钟

嵌入式蓝桥杯 官方给工程模板 其中就是LCD操作的代码 已经写好了LCD的驱动 还有系统定时器的驱动 我们先来看一下蓝桥杯给的主函数是这么操作的

STM3210B_LCD_Init();
	LCD_Clear(Blue);
	LCD_SetBackColor(Blue);
	LCD_SetTextColor(White);
	
	SysTick_Config(SystemCoreClock/1000);

	LCD_DrawLine(120,0,320,Horizontal);
	LCD_DrawLine(0,160,240,Vertical);
	Delay_Ms(1000);
	LCD_Clear(Blue);

	LCD_DrawRect(70,210,100,100);
	Delay_Ms(1000);
	LCD_Clear(Blue);

	LCD_DrawCircle(120,160,50);
	Delay_Ms(1000);

	LCD_Clear(Blue);
	LCD_DisplayStringLine(Line4 ,"    Hello,world.   ");
	Delay_Ms(1000);

	LCD_SetBackColor(White);
	LCD_DisplayStringLine(Line0,"                    ");	
	LCD_SetBackColor(Black);
	LCD_DisplayStringLine(Line1,"                    ");	
	LCD_SetBackColor(Grey);
	LCD_DisplayStringLine(Line2,"                    ");
	LCD_SetBackColor(Blue);
	LCD_DisplayStringLine(Line3,"                    ");
	LCD_SetBackColor(Blue2);
	LCD_DisplayStringLine(Line4,"                    ");
	LCD_SetBackColor(Red);						
	LCD_DisplayStringLine(Line5,"                    ");
	LCD_SetBackColor(Magenta);	
	LCD_DisplayStringLine(Line6,"                    ");
	LCD_SetBackColor(Green);	
	LCD_DisplayStringLine(Line7,"                    ");	
	LCD_SetBackColor(Cyan);	
	LCD_DisplayStringLine(Line8,"                    ");
	LCD_SetBackColor(Yellow);		
	LCD_DisplayStringLine(Line9,"                    ");	
	while(1);

首先是LCD启动代码

STM3210B_LCD_Init();

然后是LCD的清屏函数 参数选择你清理屏幕后的屏幕颜色

LCD_Clear(Blue);

是LCD设置板块背景颜色函数 参数选择屏幕后的屏幕颜色 这个板块函数是对应接下来你要显示函数的背景 而不是上一个清屏函数的全屏函数 当屏幕颜色起冲突时候 如果未设置文本 清屏函数优先级要 大于 板块背景颜色

LCD_SetBackColor(Blue);

是LCD设置文本颜色函数 参数选择你清理屏幕后的屏幕颜色

LCD_SetTextColor(White);

画线函数 一个是水平 一个是垂直

LCD_DrawLine(120,0,320,Horizontal);
	LCD_DrawLine(0,160,240,Vertical);

画圆函数

LCD_DrawRect(70,210,100,100);

显示字符串函数 两个参数 一个是第几行 一个是显示的内容

LCD_DisplayStringLine(Line4 ,"    Hello,world.   ");

这个是设置板块颜色和显示 一起用的

LCD_SetBackColor(White);
	LCD_DisplayStringLine(Line0,"                    ");

这里介绍一种屏幕显示数值的方法

因为我们要把变量的显示在LCD屏幕上 需要用一个sprintf函数组成我们的变量

sprintf();

首先我们要建立一个数组

u8 string[20]={
          
    };

然后我们选择我们要打印的数值 以printf方式赋给他 这里我们以RTC为例子

int main(void)
{
          
   

		SysTick_Config(SystemCoreClock/1000);
		LED_Init();
		BEEP_Init();
		STM3210B_LCD_Init();
		LCD_Clear(Blue);
		LCD_SetBackColor(Yellow);
		LCD_DisplayStringLine(Line0,"    hello   world       ");
		RTC_Configuration();
		Time_Adjust(23,59,55);

    while(1)
		{
          
   
		sprintf(string,"     %d - %d - %d   ",THH,TMM,TSS);
		RTC_while();
		LCD_DisplayStringLine(Line1,string);
    } 
}
经验分享 程序员 微信小程序 职场和发展