在之前的学习中对于多界面切换显示。。是非常的头疼的一件事。。感觉无从下手。
在公司看了下前辈们写的多界面切换代码后才发现。。原来多界面的切换,只要理清思路也不是特别难。。
在进行多界面切换时,一定要理清编程思路,也就是,有几个界面界面的切换顺序是什么。。。。
在编程时。。枚举类型就派上用场了,,我们可以将每个界面用枚举中的一个元素表示例如:
enum
{
UI_1;
UI_2;
UI_3;
}
在进行界面的切换的时候我们只需要用一个switch语句即可进行界面的切换。
当能进行界面的切换时。我们不同的界面也有不同的功能选项,以及显示的字符,我们只需要在主循环中判断当前处于哪个界面,对应不同的界面只需要编写相应的显示函数,即可使得编程思路扁的清晰。。。
在界面的功能选项上我们也能通过结构体来管理每个界面的各个选项。。。。使得代码便于阅读编程思路变的清晰。
在使用结构体管理时,为了避免结构体对齐和补齐消耗单片机的内存,我们可以使用关键字__packed这个关键字可以使得结构体以一字节对齐有效地避免的内存的浪费。。。。
例如:
__packed struct DAT
{
unsigned char b;
unsigned char a;
unsigned int c;
}
此时结构体所占字节为;6字节。。
总结:在进行这种复杂场景的编程时一定要理清思路,将每个不同场景分类处理就会变得思路清晰。其实这就是一种状态机的编程思想。。。