在51和STM32单片机上使用面向对象的编程,并应用于实际项目

2019-07-21 01:10发布

本帖最后由 safu枫 于 2018-5-5 21:04 编辑

首先说明一下写这篇文章的由来,最初的目的就是为了解决实际工作中的几个问题本人从事单片机工作以来,遇到以下一些想死的情况:1:面对客服今天一个需求明天一个需求2 : 功能需求不明确,随时需要修改3:一个代码量较大的工程(别人写的),过了N久突然说要修改维护,在茫茫码海里面寻找那一个个全局变量,以及它的作用4:移植,51移到32,32移到51,其实并没有什么要写的,只是封装不够好,要改动的东西太多总的来说,我就是想要写出一种可维护,可拓展,易理解的高质量代码;
所以我就学习了相关书籍,然后并把这些知识应用于实际项目中,瞬间感觉战斗力飙升!(书单:《大话设计模式》《C现代编程》《嵌入式OOPCXXX》-高焕堂)还有一些我的想法,就是在CPU性能大大提升的如今,可以牺牲一定的性能来换取更易读,易维护的代码,因为维护的成本可能是很高的,我有在网上搜过一些相关的帖子,看到很多人说,单片机内存小啊,实现不了面向对象,单片机的功能需求相对简单啊(简单你个鸡儿);把代码模块化,实现快速开发;另外这些帖子,大多都没有实际项目,实用性低;本人写这个话题的目的是:1:想与大家分享一些在学习和工作中的经验,能相互提高的战斗力2:第一次写博客,也很少逛论坛,工作中可交流的人也少,也想知道我这些东西到底好不好,有什么不好的有问题的地方欢迎大家指出。。接下来的文章,我会从具体的应用开始(按键,LED灯,数据处理),用到的面向对象的概念(类的概念,封装,继承,多态,接口),设计模式和思维(单一职责,状态机,访问者,职责链),并附上STM32源码工程(使用的是正点原子战舰V3的板子,下载直接可用),以及相关的函数操作说明,关于51系列的单片机工程,可以实现一样的效果,但是部分代码的写法需要做一些改动晚点,会更新。。。。
在51和STM32单片机上使用面向对象的编程,第一篇:炫酷地点亮一盏LED灯:http://www.openedv.com/forum.php?mod=viewthread&tid=270548&extra=在51和STM32单片机上使用面向对象的编程,第二篇:强大的按键http://www.openedv.com/forum.php?mod=viewthread&tid=270631&extra=
在51和STM32单片机上使用面向对象的编程,第三篇:按键控制开灯关灯也能爆炸http://www.openedv.com/thread-270786-1-1.html


补充内容 (2018-5-26 11:48):
在51和STM32单片机上使用面向对象的编程,第四篇:数据流处理:
http://www.openedv.com/forum.php ... d=272121&extra=
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
29条回答
LIGONG004
1楼-- · 2019-07-23 10:52
决不可能的,
你先说咋面向对象?

除非你有操作系统,提供类库,
safu枫
2楼-- · 2019-07-23 10:56
本帖最后由 safu枫 于 2018-5-10 14:14 编辑
LIGONG004 发表于 2018-5-10 11:56
决不可能的,
你先说咋面向对象?

不说,就不说,不告诉你。。。。开个玩笑,你看 下面有相关链接,有后续更新,还有《C现代编程》这本书上有具体的方式
面向对象只是一种思维,语法语言上可以很灵活实现得,特别是C本来就很灵活
LIGONG004
3楼-- · 2019-07-23 12:21
OOP思想的本质,
你懂么?
不懂可以科谱?

面象对象,说白了,就是做个标准模版,然后用模板生成一系列代码,

比如你去开发商买房子,开发商跟你写个合同,
开发商用模板生出一份合同,写上你的名字,房子,价格,
这就是面象对象的工作模式,OOP思想.

如果用OP思想,咋做?
开发商一个字一个字的敲一份合同,出来,
张三来了也的一字一字得敲一份,
李四来了也的一字一字得敲一份,
王五来了也的一字一字得敲一份,
.....
这就是OP思想,
LIGONG004
4楼-- · 2019-07-23 12:36
 精彩回答 2  元偷偷看……
safu枫
5楼-- · 2019-07-23 17:40
LIGONG004 发表于 2018-5-11 08:53
OOP后面的东西还很多,

请教一下,都有什么呢?我看能不能实现
bxl131
6楼-- · 2019-07-23 21:40
 精彩回答 2  元偷偷看……

一周热门 更多>