参考资料:
      蓝桥杯嵌入式备赛手册
      蓝桥杯嵌入式开发经验分享(6.液晶驱动程序的调用)
总目录:目录

  • 建议直接用他的例程改,他函数都写好了,直接用就完了
    在这里插入图片描述
  • 里面常用的函数:
void STM3210B_LCD_Init(void);         // LCD液晶初始化
void LCD_SetTextColor(vu16 Color);      //改变字体颜色
void LCD_ClearLine(u8 Line);            // 清除行
void LCD_DisplayStringLine(u8 Line, u8 *ptr);   // 行显示字符串

显示字符串

  • LCD显示字符是按行显示的,总共可以显示10行字符(Line0~Line9),并且每一行可以显示20个字符。
  • 例程的主函数其实就是显示字符串的,添加上你要显示的字符即可
    在这里插入图片描述
  • 例如
int main(void)
{
	SysTick_Config(SystemCoreClock/1000);

	Delay_Ms(200);
	
	STM3210B_LCD_Init();
	LCD_Clear(Blue);
	LCD_SetBackColor(Blue);
	LCD_SetTextColor(Black);
	
	LCD_SetBackColor(White);
	LCD_DisplayStringLine(Line0,(unsigned char *)"first:white");	
	LCD_SetBackColor(Red);
	LCD_DisplayStringLine(Line1,(unsigned char *)"second:red");	
	LCD_SetBackColor(Grey);
	LCD_SetTextColor(Green);
	LCD_DisplayStringLine(Line2,(unsigned char *)"third:grey");

	
	while(1);
}

  • 显示效果如图:在这里插入图片描述

利用sprintf显示变量

  • 明显,上述只能显示设定好的字符串,因此,需要利用sprintf实现变量的显示
  • 其函数声明:int sprintf(char *str, const char *format, ...)
  • 可见,我们还需要设置一个数组,存储我们要显示的字符串
  • 注意:要包含stdio.h头文件
  • 例如
	u8 str[20];
	u8 n = 1;
	float m = 3.14;
	
	sprintf((char*)str,"n=%d,m=%lf",n,m);
	LCD_DisplayStringLine(Line2,str);
  • 显示效果如图:
    在这里插入图片描述
  • 显示字符串时,长度若比上次的短,则超出的那部分不会被空格替代

字符串循环显示

  • 只需要不断清除行内容,然后写入即可
int main(void)
{
	u8 str[20];
	u8 n = 1;
	SysTick_Config(SystemCoreClock/1000);

	STM3210B_LCD_Init();
	LCD_Clear(Blue);
	LCD_SetBackColor(Blue);
	LCD_SetTextColor(Black);
	
	while(1)
	{
		LCD_ClearLine(Line0);
		sprintf((char*)str,"count:n=%d",n);
  	    LCD_DisplayStringLine(Line0,str);
		n++;
		
		LCD_ClearLine(Line2);
		sprintf((char*)str,"hello world!");
		LCD_DisplayStringLine(Line2,str);
		
		Delay_Ms(1000);
	}
}
  • 显示效果如图:

在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐