蓝桥杯电子类嵌入式(STM32G431)备赛学习记录(二)——LCD

02、LCD屏

蓝桥杯正式比赛时会给参赛选手一个数据包,里面会有LCD屏相关配置文件和库函数,所以这里的例程相当于只是一个代码移植。具体LCD屏的学习可以参考火哥的视频。
我们打开之前的工程文件以及.ioc文件,具体参考这里。根据芯片数据手册,在cube中配置相关GPIO口,完成后点击GENERATE CODE。
在这里插入图片描述
在这里插入图片描述
打开选手数据包文件,找到HAL_06_LCD文件夹,将Inc文件夹中的lcd.h和fonts.h以及Src文件夹下的lcd.c共三个文件复制到工程文件路径下的bsp文件夹中(上一篇博客中咱自己创建的那个)。
在这里插入图片描述
在工程中将lcd.c文件添加进bsp文件中。
在这里插入图片描述
打开官方提供的LCD工程文件,在main.c中查找有关LCD的代码如下:

  /* USER CODE BEGIN 2 */
	
	LCD_Init();      //LCD初始化
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
	
	LCD_Clear(Blue);      //将屏幕清屏至蓝色
	LCD_SetBackColor(Blue);         //将屏幕背景设置为蓝色
	LCD_SetTextColor(White);        //字体设置为白色
	

	LCD_DrawLine(120,0,320,Horizontal);      //画线函数,这里根据指定位置画一条水平直线
	LCD_DrawLine(0,160,240,Vertical);		  //画垂线
	HAL_Delay(1000);		
	LCD_Clear(Blue);

	LCD_DrawRect(70,210,100,100);  			//画矩形
	HAL_Delay(1000);
	LCD_Clear(Blue);

	LCD_DrawCircle(120,160,50);			//画圆
	HAL_Delay(1000);

	LCD_Clear(Blue);
	LCD_DisplayStringLine(Line4 ,(unsigned char *)"    Hello,world.   "); 	·//在指定行显示指定字符
	HAL_Delay(1000);

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

可以全部复制到咱的主函数中查看效果。实际比赛中,根据题目要求可以对背景以及字体进行设定,比如咱这里要在第五行显示“YELLOW:30”这一串字符,背景为白色,字体为黑色,则在main.c中代码如下:

  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
		Dis_LED(0x80);
		HAL_Delay(500);
		Dis_LED(0x00);
		HAL_Delay(500);
		
		char dis[20];    //定义一个内存为20的数组
		uint i=30;
		sprintf(dis,"YELLOW:%d",i);     //将字符串传到指定数组中
		LCD_DisplayStringLine(Line5,(unsigned char *)dis);
  }
  /* USER CODE END 3 */

这里要注意要包含一下lcd.h和stdio.h这两个头文件,后一个是因为sprintf这个函数要用到。
编译无误,下载完成!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值