嵌入式蓝桥杯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);
}
}
