打印
[技术支持]

单片机项目有必要分层设计吗?

[复制链接]
55|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
claretttt|  楼主 | 2025-2-23 14:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
嵌入式分层思想,可能初学者不太懂,但你肯定见到过很多类似下面这样的软件结构图。



举一个例子:一个遥控器控制一个小车运动,包含遥控器的按键(比如:前后左右),无线通信(比如:433),小车无线接收,电机驱动、电机控制算法等。

1.底层驱动层小车部分:电机驱动(比如IO时钟、PWM配置)封装成一个函数、433驱动封装成一个函数。然后把这两个函数整理在一个Driver(驱动)函数。

2.中间层这里比如你电机用到了加减速、左右转向的一些算法,封装成对应Middleware中间层模块函数(待应用层调用)。

反之,你代码很乱,要实现一个业务逻辑,可能连续加班多天,最后写出来的代码也是bug无数。
嵌入式编程,模块化相当重要,可以说,它会影响你代码质量、加班多少、甚至升职加薪。

如果你把所有代码都写在main函数,你说能实现吗?当然,肯定也能实现。
但是,你这样写,你的业务逻辑代码是不是很废脑、很费时间?
还有,你后续加修改按键方式、添加功能,你该怎么办?

上面其实也说了:电机驱动(比如IO时钟、PWM配置)封装成一个函数,这其实就是一个小模块。
当然,这里的驱动函数只是一个小模块,然后还需要进一步封装成“大模块”。

比如:我这里还引入一个编码器,闭环检测电机速度,通过底层电机驱动、加减速算法,编码器等整合成一个电机运动的函数(模块):MOTOR_Ctrl(速度,方向)。这就是一个大模块(当然,还可以结合需求再进一步封装)。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

58

主题

1462

帖子

0

粉丝