如何编写界面化程序

 

 

最近做了一个小项目,是为一个板子配置数据用的,也就是做了一个手持配置仪。

 

我使用LCD1602来去做这个项目的显示设备,虽然这个项目简单,但在做界面(屏幕)类的项目都是一样的,其基本思路不变。

 

现在我先介绍一下这个项目的硬件部分,我们使用的核心主控芯片是stm32f103c8t6,外围硬件部分主要有LCD1602屏幕,RTC时钟电路,AT24C02存储电路,按键输入部分。大家可以脑补一下这些硬件电路设计在这个项目中主要起到什么作用?

 

硬件电路部分简单的介绍之后,开始介绍我们这篇文章的主题,如何去编写界面程序。在贴出代码之前,大家先考虑一下怎么去实现界面化显示的功能。我们想要去显示一个画面,而不显示其他的画面,这需要我们的代码一直的停留在此画面显示的内容。这时我们便想到了使用while(1)死循环的语句去处理,这样确实可以让画面停留在这里,但是我们目的是为了显示多个画面切换。这需要去跳出死循环,在操作过程中我们是使用按键来去切换下一个界面的,所以在当前画面里的代码一定要有按键函数,不然跳不出死循环。问题又来了,我们在按下按键后执行什么语句可以跳出死循环,去执行下一个死循环呢(下一个画面)?Break,break可以跳出while和for的循环,只需要在按键函数里加入break,就可以去顺序执行下一个死循环了,同理,就可以多个多个画面切换了。
void Screen(void)
{
if(SEL==0)
{
LCD1602_Write_Cmd(0x01);
Init_Screen();
while(1)
{
USART1_Handle();
Fresh_Sta();
SEL_KEY();
if(SEL!=0)
{
break;
}
}
}
此为单个画面的处理函数,就是利用while(1)去锁住这个画面的。通过按键函数SEL_KEY()来改变SEL的值,使其不等于0,执行if 语句的break来跳出当前画面进入下一个画面。

留下评论

咨询