想实现一个设计模式,实现的功能就是 按set键进入设置模式,按上下键调节值的大小,再按set键完成参数设置,并进入下一个参数的设置。
我的思路是这样的:
主架构分为三部分:
1、管理函数:
只调用switch(x) x初始值为0
case 0: 设置参数1的函数;break;
case 1: 设置参数2的函数;break ;
default: x=0 ;
2、设置参数1的函数:
while(1)循环
{
显示要设置的数据;
等待键值;
判断键值进行操作;
上下键设置值的大小;
set键完成设置并调用 管理函数且x的值+1;
}
2、设置参数2的函数:
主体和设置参数1的函数一致,不做赘述;
以上是我写的代码的思路,但是发现无法实现,仅仅切换就有问题,具体现象是,切换到设置参数2后,按set键并没有回到设置函数1的函数,而是卡在这,但是x值已经变了,也调用了管理函数,为什么回不去呢?求指点,或者给指引一条其他的思路都可以。。拜托各位!!!已经多次修正测试好几天了,依旧无果。。想看代码的留言,怕大家看不下去,遂暂时不留代码。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
我分两部分回答你吧;
1、就是你提供的思路,我如果没理解错的话,你的意思就是每一个按键控制一个参数的设置,按1进入参数1的设置,按2进入参数2的设置,对吧?我相信这样是没问题的,但是我觉得按键太多了,不太符合我目前想做的这么个小玩意的思路,我只是想就好像小时候的那个电子表一样,set键设置时间,set键设置日期,set键回归原位。这是我的目标;
2、你提供的思路我也有想到过,但是现象是可以进入死循环,却回不了界面1,两个界面的话问题还不是很大,但是一旦超过两个,假设我有4个界面,就只能在2-4界面来回切换,所以我找不到我哪的逻辑有问题。我之前用c语言编辑模拟了一下也是相同的结果。而且这么写的方式及其不稳定,用c模拟的时候次数达到足够多的数量程序就崩溃了,所以我感觉在stm32上应该也有一样的隐患。所以我才选择看看能不能找一个其他的思路。
一周热门 更多>