[STM8] STM8框架使用指引

[复制链接]
 楼主| 回复就哭哭 发表于 2022-12-29 23:51 | 显示全部楼层 |阅读模式
概述

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

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

评论

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

122963adb79fe43d3.png
  如上图,以ST官方驱动包为基础,构建基础驱动包,两者都是通用型驱动;然后再以两者为基础构建应用驱动,应用驱动基本是针对具体器件量身定做的,属于专用型驱动;应用框架比较简单,不多说。随着驱动的不断完善,不断沉淀,最终底层bug将趋近于无,我们的工作重心放在功能逻辑层面即可,到达这个状态后底层驱动会被屏蔽,接触最多的是应用驱动, 所以应用驱动务必接口清晰,调用方便,也因为这个原因,我们只在这一层引入了”轻量级面对对象C语言编程”,即lw_oopc,想了解更多可参阅<<UML+OOPC嵌入式C语言开发精讲>>。
 楼主| 回复就哭哭 发表于 2022-12-29 23:54 | 显示全部楼层
  文件结构如下,AppDrive和BaseDrive前面有说;Documents是用于存放应用文档,如使用指引,API文档等等;User用于存放项目文件、功能逻辑等;readme用于存放版本更新说明,应用到具体项目中时就是对应项目的版本说明。
8605763adb81f52d69.png
 楼主| 回复就哭哭 发表于 2022-12-29 23:54 | 显示全部楼层
框架程序介绍

  利用定时器建立的一个普通的时间片轮询机制,分成了高速、中速、低速轮询区,目的是提供基本的计时单位,同时减少MCU空转。
 楼主| 回复就哭哭 发表于 2022-12-29 23:55 | 显示全部楼层
 楼主| 回复就哭哭 发表于 2022-12-29 23:56 | 显示全部楼层
应用层驱动举例

      如下,为简单的按键驱动Demo,头文件中给出了清晰的接口函数和相关变量,调用该驱动时只要创建对象就可以直接使用,与上层应用的耦合度非常低,真正做到了高内聚、低耦合。
4016963adb873d6a12.png
 楼主| 回复就哭哭 发表于 2022-12-29 23:56 | 显示全部楼层
Key驱动使用。

      第1步:创建对象指针。不要觉得很奇怪,C语言的面向对象是建立在结构体和指针的基础上的。
975663adb8a7bd1ad.png
 楼主| 回复就哭哭 发表于 2022-12-29 23:59 | 显示全部楼层
    第2步:创建对象并调用其初始化成员函数。初始化不是必须的,但一般都需要有,毕竟成员变量啥的都要处理呀。
8611563adb8dd4dd24.png
Bowclad 发表于 2023-1-1 16:50 | 显示全部楼层
这个还需要用框架吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

434

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部