打印
[STM8]

STM8框架使用指引

[复制链接]
1698|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
概述

      编写该框架是为了避免一个很尴尬的情况:一个公司几位工程师,每位工程师看似合作,但提交的代码却是框架各异、风格迥然,你看我的代码别扭,我看你的代码费神……这些都增加了沟通成本、出错成本,不利于项目维护和传承。新接手的工程师看到一堆充满异域风情的代码时,可能会仰望天空45°留下入错行的悔恨泪水……

       该框架的最上层使用lw_oopc构建,使C语言具备了面向对象的能力,亲测效果很好,易用性、可移植性、可阅读性都很好。希望大家一起努力,沉淀出一套简洁的、稳定的、充满活力的框架,有了一个稳定的基础,妈妈再也不用担心一些无脑的bug了~

使用特权

评论回复
评论
回复就哭哭 2022-12-29 23:51 回复TA
———————————————— 版权声明:本文为CSDN博主「苏墨随笔」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/wangpeng421/article/details/106362778 
沙发
回复就哭哭|  楼主 | 2022-12-29 23:53 | 只看该作者
组织架构


  如上图,以ST官方驱动包为基础,构建基础驱动包,两者都是通用型驱动;然后再以两者为基础构建应用驱动,应用驱动基本是针对具体器件量身定做的,属于专用型驱动;应用框架比较简单,不多说。随着驱动的不断完善,不断沉淀,最终底层bug将趋近于无,我们的工作重心放在功能逻辑层面即可,到达这个状态后底层驱动会被屏蔽,接触最多的是应用驱动, 所以应用驱动务必接口清晰,调用方便,也因为这个原因,我们只在这一层引入了”轻量级面对对象C语言编程”,即lw_oopc,想了解更多可参阅<<UML+OOPC嵌入式C语言开发精讲>>。

使用特权

评论回复
板凳
回复就哭哭|  楼主 | 2022-12-29 23:54 | 只看该作者
  文件结构如下,AppDrive和BaseDrive前面有说;Documents是用于存放应用文档,如使用指引,API文档等等;User用于存放项目文件、功能逻辑等;readme用于存放版本更新说明,应用到具体项目中时就是对应项目的版本说明。

使用特权

评论回复
地板
回复就哭哭|  楼主 | 2022-12-29 23:54 | 只看该作者
框架程序介绍

  利用定时器建立的一个普通的时间片轮询机制,分成了高速、中速、低速轮询区,目的是提供基本的计时单位,同时减少MCU空转。

使用特权

评论回复
5
回复就哭哭|  楼主 | 2022-12-29 23:55 | 只看该作者

使用特权

评论回复
6
回复就哭哭|  楼主 | 2022-12-29 23:56 | 只看该作者
应用层驱动举例

      如下,为简单的按键驱动Demo,头文件中给出了清晰的接口函数和相关变量,调用该驱动时只要创建对象就可以直接使用,与上层应用的耦合度非常低,真正做到了高内聚、低耦合。

使用特权

评论回复
7
回复就哭哭|  楼主 | 2022-12-29 23:56 | 只看该作者
Key驱动使用。

      第1步:创建对象指针。不要觉得很奇怪,C语言的面向对象是建立在结构体和指针的基础上的。

使用特权

评论回复
8
回复就哭哭|  楼主 | 2022-12-29 23:59 | 只看该作者
    第2步:创建对象并调用其初始化成员函数。初始化不是必须的,但一般都需要有,毕竟成员变量啥的都要处理呀。

使用特权

评论回复
9
Bowclad| | 2023-1-1 16:50 | 只看该作者
这个还需要用框架吗?

使用特权

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

本版积分规则

24

主题

358

帖子

0

粉丝