历史上的今天
返回首页

历史上的今天

今天是: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的! 会不会惊喜的发现,代码注释也很清晰呢~


推荐阅读

史海拾趣

Hirect公司的发展小趣事
考虑工作环境和安全性要求,选择合适的绝缘等级。
Gigarams Semiconductor Device Corp公司的发展小趣事
这可能是由于控制算法复杂或系统响应速度不足导致的。解决方案包括简化控制算法、提高系统响应速度或采用更高效的控制策略。
Curtis Instruments Inc公司的发展小趣事

1995年,Curtis在中国建立了独资企业科蒂斯仪器(中国)有限公司,其制造工厂于1997年投入生产。经过近20年的发展,Curtis在中国已经建立了完善的生产、研发和销售体系。2012年,Curtis在苏州工业园区成立了独立的科蒂斯技术(苏州)有限公司,进一步提升了在中国的研发和生产能力。如今,Curtis中国已成为Curtis在全球的第6个研发中心,也是中国最现代化的生产电动车辆驱动控制系统的厂商之一。

Aptina (ON Semiconductor)公司的发展小趣事

随着市场竞争的加剧和行业发展的需要,Aptina最终被半导体巨头ON Semiconductor收购。这一收购使得Aptina得以借助ON Semiconductor的资源和平台,实现更快速的发展。ON Semiconductor对Aptina的收购也进一步提升了其在图像传感器领域的市场地位,为公司未来的发展注入了新的动力。

Aristo-Craft/ L M P Inc公司的发展小趣事

随着公司产品的不断升级和优化,Aristo-Craft/L M P Inc开始积极寻求市场拓展的机会。他们不仅在国内市场建立了稳定的销售渠道,还通过参加国际展会、与海外企业建立合作关系等方式,成功打入国际市场。同时,公司还积极寻求与其他行业领导者的战略合作,共同推动电子行业的发展。

DURATOOL公司的发展小趣事

随着全球经济的不断发展,DURATOOL公司意识到单一市场已无法满足其长远发展需求。因此,公司制定了一系列国际化战略,积极开拓海外市场。通过与国外知名企业的合作,DURATOOL公司成功将其产品线扩展到全球多个国家和地区。同时,公司还积极参加国际展会和技术交流活动,提升品牌知名度和影响力。这些举措不仅为DURATOOL公司带来了丰厚的经济回报,也为其在国际市场上树立了良好的企业形象。

问答坊 | AI 解惑

冲动是魔鬼之——维修德生R-911的资料总集(checked)

本帖最后由 辛昕 于 2018-5-3 16:34 编辑 说起来,我早已忘记当年那个美女研究生小姐姐长什么样了,也根本没成功约过人家....... 倒是这一次疯狂的维修......... 没想到我后来的工作,甚至直到如今,都没改变这种毫无章法的风格.......... 真 ...…

查看全部问答>

msp430 DCO 怎么设置

     我想利用DCO产生一个320K的时钟给SMCLK用。看了手册没明白该怎么设置,手册上所说的8个离散频率是多少啊      有谁会告诉我下,该怎么设置DCO到320K,或告诉我怎么用具体的我自己设置…

查看全部问答>

大家一开始是如何学习硬件设计的

小弟是个菜鸟,还没有入门,现在想学硬件,不知该从何学起,都要学习什么课程,希望大家不涩赐教。…

查看全部问答>

LPC11U14实现SD卡U盘

此实验在本人设计的LPC1114/LPC1343/LPC11U14开发板是验证成功:下面先秀秀图吧,下面是三种芯片三种开发板。SD卡在背面。。。                             ...…

查看全部问答>

gerber文件格式的简写

在板厂制版的时候,大家可能会遇到要求发送光绘文件的情况,关于gerber文件的后缀分别代表什么意思呢?那就看看下面这个说明吧:GTL---toplayer 顶层GBL---bottomlayer 底层GTO---TopOverlay 顶层丝印层GBO---Bottomlayer 底层丝印层GTP---TopPaste ...…

查看全部问答>

Launchpad上面有没有5V的输出啊~~~

我用电表测了一下,发现Vcc是3.3V,不知道launchpad上面有没有5V的电压输出啊~~~…

查看全部问答>

2012年10月份北京举办的一些重要行业展会和研讨会

  中国国际光电产业博览会暨第十七届中国国际激光、光电子及光显示产品展览会 展会场馆:北京朝阳区三环东路六号中国国际展览中心举办时间: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 ...…

查看全部问答>

双通道 H 桥电机驱动器

DRV8833 为玩具、打印机及其他机电一体化应用提供了一款双通道桥式电机驱动器解决方案。 该器件具有两个H 桥驱动器,并能够驱动两个直流(DC) 电刷电机、一个双极性步进电机、螺线 管或其他电感性负载。 每个H 桥的输出驱动器模块由N 沟道功率MOS ...…

查看全部问答>

CCS 5程序 调试的一些方法

用CCS 5    单步 调试时,如果遇到__delay_cycles(782000);怎么直接跳出,这个好像不是函数??? 如果是for循环语句又怎么跳出?? 还有什么调试技巧吗??…

查看全部问答>