大家都知道程序模块化设计的重要性,而另一个面向过程编程的重要思想就是分层设计,分层设计可以更好的划分模块,实现高内聚低耦合,并提炼成自己的程序库。在参考了网上一些思想以后,对单片机裸编程的程序框架形成了一个初步的分层思路,在这里向大家分享,也起个抛砖引玉的效果。
整个程序分为4层
1.MCU层:所用单片机的各个功能驱动,一般厂商会提供,部分单片机需要自己写。
2.HAL层:硬件抽象层,为板上所有外设的驱动。
3.FML层:功能模块层,系统内各个功能的实现所需函数(注:该层只是方法,而不是实现),又分为3个模块
操作模块:为实现各种功能所需的外设操作以及单片机的操作,
数据模块:
(1) 数据来源层:实现系统内各种数据的采集,主要调用MCU层和HAL层实现;
(2)数据预处理层:这层可根据需求决定是否需要,与硬件无关,对采集到的数据进行预处理,如对ADC采集到的波形进行滤波;
(3)数据处理层:这层是对数据进行最终处理的相关函数所在。
通讯模块:负责与其他设备通讯
4.App层:应用层,负责实现各种实际功能,只调用FML层的函数。
经过实践以后,发现程序框架确实比以前清晰,但是发现一个问题,UI放在App层会调用大部分其他功能,正在考虑是不是UI也单独作为一层。
|