【蓝桥杯嵌入式】应赛技巧①多屏切换

摘要

本文章基于国信长天CT1117E-M4开发板,讲述了在蓝桥杯嵌入式比赛过程中双屏切换的实现技巧,帮助同学们在比赛中快速实现该功能。国信长天开发板

命题趋势分析

统计分析近5年的省赛真题,都出现了通过按键切换屏幕内容的要求,统计数据如下:

第十届第十一届第十二届第十三届(1)第十三届(2)
双屏切换双屏切换双屏切换双屏切换三屏切换

通过上述数据可以看出,通过按键切换屏幕几乎是赛题中必然会出现的内容,可能是双屏切换,也可能是三屏切换。

下文给出一个框架,来实现多屏切换的功能。

多屏切换的实现

要实现按键控制屏幕切换,首先需要配置好按键相关的GPIO,并且实现按键驱动函数Key_Scan(),对这部分知识不熟悉的同学可参考:蓝桥杯嵌入式基础篇②按键的使用

然后通过一个变量page_index来记录当前显示的页面序号,通过按键改变页面需要,根据页面序号显示页面内容,参考代码如下(以12届赛题为例):

  int page_index = 1;
  int key_value = 0;
  while (1)
  {
		key_value = Key_Scan();
		
		if(key_value == 1)
		{
			if(page_index == 1) page_index = 2;
			else if(page_index == 2) page_index = 1;
		}
		
		if(page_index == 1)
		{
		     LCD_DisplayStringLine(Line1, (u8*)"       Data            ");
			 LCD_DisplayStringLine(Line3, (u8*)"  CNBR : 2             ");
			 LCD_DisplayStringLine(Line5, (u8*)"  VNBR : 4             ");
			 LCD_DisplayStringLine(Line7, (u8*)"  IDLE : 2             ");
		}
		if(page_index == 2)
		{
			 LCD_DisplayStringLine(Line1, (u8*)"       Para             ");
			 LCD_DisplayStringLine(Line3, (u8*)"  CNBR : 3.50           ");
			 LCD_DisplayStringLine(Line5, (u8*)"  VNBR : 2.00           ");
			 LCD_DisplayStringLine(Line7, (u8*)"                        ");
		}
  }

练习

在上述代码的基础上,尝试实现三屏甚至更多屏显示内容的切换。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值