历史上的今天
今天是:2024年10月25日(星期五)
2021年10月25日 | STM8框架使用指引
2021-10-25 来源:eefocus
一、概述
编写该框架是为了避免一个很尴尬的情况:一个公司几位工程师,每位工程师看似合作,但提交的代码却是框架各异、风格迥然,你看我的代码别扭,我看你的代码费神……这些都增加了沟通成本、出错成本,不利于项目维护和传承。新接手的工程师看到一堆充满异域风情的代码时,可能会仰望天空45°留下入错行的悔恨泪水……
该框架的最上层使用lw_oopc构建,使C语言具备了面向对象的能力,亲测效果很好,易用性、可移植性、可阅读性都很好。希望大家一起努力,沉淀出一套简洁的、稳定的、充满活力的框架,有了一个稳定的基础,妈妈再也不用担心一些无脑的bug了~
二、组织架构

如上图,以ST官方驱动包为基础,构建基础驱动包,两者都是通用型驱动;然后再以两者为基础构建应用驱动,应用驱动基本是针对具体器件量身定做的,属于专用型驱动;应用框架比较简单,不多说。随着驱动的不断完善,不断沉淀,最终底层bug将趋近于无,我们的工作重心放在功能逻辑层面即可,到达这个状态后底层驱动会被屏蔽,接触最多的是应用驱动, 所以应用驱动务必接口清晰,调用方便,也因为这个原因,我们只在这一层引入了”轻量级面对对象C语言编程”,即lw_oopc,想了解更多可参阅< 文件结构如下,AppDrive和BaseDrive前面有说;Documents是用于存放应用文档,如使用指引,API文档等等;User用于存放项目文件、功能逻辑等;readme用于存放版本更新说明,应用到具体项目中时就是对应项目的版本说明。 三、框架程序介绍 利用定时器建立的一个普通的时间片轮询机制,分成了高速、中速、低速轮询区,目的是提供基本的计时单位,同时减少MCU空转。 四、应用层驱动举例 如下,为简单的按键驱动Demo,头文件中给出了清晰的接口函数和相关变量,调用该驱动时只要创建对象就可以直接使用,与上层应用的耦合度非常低,真正做到了高内聚、低耦合。 Key驱动使用。 第1步:创建对象指针。不要觉得很奇怪,C语言的面向对象是建立在结构体和指针的基础上的。 第2步:创建对象并调用其初始化成员函数。初始化不是必须的,但一般都需要有,毕竟成员变量啥的都要处理呀。 第3步:调用成员函数。对应按键的键值可在成员变量中获取。 下面成员函数Scan的源码。 下面是按键处理函数keyProcess()源码。 看到这,有的小伙伴很疑惑:什么鬼的清晰明了,最基本的按键IO的定义都没有啊?看下key.c文件就会发现,IO定义等均放在该文件最前面的位置,可根据具体项目进行调整,这也高内聚、低耦合的一个体现,不需要暴露出来的绝不暴露,我们走的是清纯路线~ 五、API说明 这个需要等框架完善稳定后再整理了,而且大家都是工程师,直接看代码和注释也是非常OK的! 会不会惊喜的发现,代码注释也很清晰呢~






上一篇:STM8低功耗问题
下一篇:STM8芯片加密的方法
史海拾趣
|
冲动是魔鬼之——维修德生R-911的资料总集(checked) 本帖最后由 辛昕 于 2018-5-3 16:34 编辑 说起来,我早已忘记当年那个美女研究生小姐姐长什么样了,也根本没成功约过人家....... 倒是这一次疯狂的维修......... 没想到我后来的工作,甚至直到如今,都没改变这种毫无章法的风格.......... 真 ...… 查看全部问答> |
|
我想利用DCO产生一个320K的时钟给SMCLK用。看了手册没明白该怎么设置,手册上所说的8个离散频率是多少啊 有谁会告诉我下,该怎么设置DCO到320K,或告诉我怎么用具体的我自己设置… 查看全部问答> |
|
此实验在本人设计的LPC1114/LPC1343/LPC11U14开发板是验证成功:下面先秀秀图吧,下面是三种芯片三种开发板。SD卡在背面。。。 ...… 查看全部问答> |
|
在板厂制版的时候,大家可能会遇到要求发送光绘文件的情况,关于gerber文件的后缀分别代表什么意思呢?那就看看下面这个说明吧:GTL---toplayer 顶层GBL---bottomlayer 底层GTO---TopOverlay 顶层丝印层GBO---Bottomlayer 底层丝印层GTP---TopPaste ...… 查看全部问答> |
|
中国国际光电产业博览会暨第十七届中国国际激光、光电子及光显示产品展览会 展会场馆:北京朝阳区三环东路六号中国国际展览中心举办时间:2012年10月16日~2012年10月18日 第九届中国国际机器视觉展览会暨机器视觉技术及工业应用研讨会展 ...… 查看全部问答> |
|
Launchpad官网价格翻番9.9刀,论坛活动中正在以25元的价格发售(加触摸板) Launchpad价格已经翻了一番,论坛参加活动还能够25元获得launchpad+触摸板, 活动链接:https://bbs.eeworld.com.cn/TI/201303_MSP430_Launchpad/index.html 这个价格怕是最后一拨了,存货完了,launchpad就回不到25的时代咯。 [ 本帖最后由 wstt ...… 查看全部问答> |
|
DRV8833 为玩具、打印机及其他机电一体化应用提供了一款双通道桥式电机驱动器解决方案。 该器件具有两个H 桥驱动器,并能够驱动两个直流(DC) 电刷电机、一个双极性步进电机、螺线 管或其他电感性负载。 每个H 桥的输出驱动器模块由N 沟道功率MOS ...… 查看全部问答> |
|
用CCS 5 单步 调试时,如果遇到__delay_cycles(782000);怎么直接跳出,这个好像不是函数??? 如果是for循环语句又怎么跳出?? 还有什么调试技巧吗??… 查看全部问答> |




