赞
踩
本文章基于国信长天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*)" "); } }
在上述代码的基础上,尝试实现三屏甚至更多屏显示内容的切换。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。