你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 3128|回复: 4

为什么要用ST库,一个从业软件工程师如何看待库。借此机会讨论工具思维论。

[复制链接]

15

主题

7

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2011-4-16 14:46:22 | 显示全部楼层 |阅读模式
发现网上经常有人问库的问题,下面说说我的理解,我做嵌入式也蛮久了,接触的构建也蛮多,也许我的观点能给大家一点借鉴。

什么是库?在我接触stm32之前,玩过lpc和s3c系列的arm,这些芯片,程序员编程的时候,很大精力都要用在操作寄存器上,而且还不能保证自己的操作是稳定及正确的。在保证对寄存器的操作正确之后,程序员才能将精力放在应用及系统之上,而应用和系统,对程序员而言,其意义往往大于对芯片本身寄存器的理解。因为,芯片只是工具,你理解了一个芯片的寄存器操作之后,玩一下个芯片,又需要重新去理解新芯片的寄存器操作。对于学习者而言,去学习寄存器是必要的,因为你要完成知识的积累(量变)。然而对于成熟的嵌入式工程师,都希望尽可能在芯片本身上花的时间少,因为他们希望产品开发周期尽可能短。成熟的嵌入式工程师,都会花大时间去研究应用和系统框架,因为这些东西可以用在任何一个芯片构架之上,是不变的(思维)。工具(芯片平台)不管如何换,都是万变不离其宗的--一个处理器而已。正因为出于这种考虑,st针对stm32芯片出了库,所谓的库,就是针对stm32这个芯片,将寄存器的操作都写成函数,提供函数API给程序员,并且可以保证这些函数的稳定性及正确性。程序员就会从操作寄存器这繁杂的工作中脱离出来。需要使用stm32某个模块时,只需要翻翻库的api调用方法,或者找找例程,就可以很轻松的用库里的函数(api)操作stm32的某个模块。就我而言,今年三月份之前,我还不知道stm32到底是个什么东西。现在呢,我已经在stm32上写了包括各种驱动例程和酷系统(Q-OS)在内的比较复杂的程序,可是对于stm32某个模块具体是如何操作寄存器的,我还真不知道,因为我一直是用库的。

现在很多学习者是本末倒置的,本来st出库,是为了解放程序员对寄存器的繁杂操作。可是现在没有经验的初学者,都拼命想去了解库是怎么实现的,是怎么操作寄存器的。有一种貌似要玩哪个模块,就必须懂得寄存器操作这样的观念等等。这些观念不能说是不正确的,因为我很能理解初学者对未知世界的探索欲。但是这样不讲究方法的学习,到最后得到的结果就是学习者四处碰壁,问又没人问,找答案又找不着,结果灰心丧气,打击了自信心,对嵌入式学习的动力也没有了。

我比较赞同的观点就是,对于一个只接触过单片机的初学者而言。不要再将学单片机的一套方法用在stm32上。初学者大可以放下心来,第一次学的时候,不去追求库的具体实现,不去过问如何操作寄存器,只是放心的调用库的api,相信库的可靠性(实际上它真的很可靠)。多研究下库里每个模块都有哪些api,api如何使用,有些什么参数,返回的是什么值等。我相信这是很简单的事情,因为很多api看名字就知道怎么用了,何况网上还有这么多例程和文档可以参考。然后组织这些api,写出你想要的有趣的应用,提升自己对嵌入式的兴趣,保障自己的信心。要记住,你第一遍是在享受库给你提供的快捷和方便!等你对stm32的每个模块都有了了解,第二次学的时候,因为有了全局观和信心,你再耐下心来,随便挑个模块研究下库的实现,研究如何操作寄存器,寄存器操作有什么技巧等等。我相信这个时候,难度已经大大降低了。

用我说的这种方法,层层深入,学会引导自己,才能够大大降低学习难度,让自己真的了解stm32是个什么东西。永远要记住,库和stm32以及其他芯片,都只不过是个工具而已,掌握工具是必须的,然而核心的关键的,是思维!
 
 
 
 
下面借这个机会向大家介绍一下我总结的“工具思维方法_论”,抛砖引玉,希望和大家交流!

这两年来,我接触的事物非常多,本来就是个闲不住的人,兴趣又广泛,精力无限。经历多了,自然感悟就多了,感悟多了,很多东西就看开了。今天我写在这里的,就是这几年以来,我所塑造的属于自己的人生哲学。我不清楚这一套方法理论是不是适合别人,但是就我而言,它已经能帮我解决生活中的所有事情,我希望看我文章的人,对自己的思维也能有相同的思考,或者从我的方法里能够得到借鉴。

在参看我的方法_论之前,如果你了解王阳明心学,那就更好了。我的方法_论,完全基于心学,是一个实践性扩充而已。

我从高中开始知事,懂得去努力争取自己想要的,那时的我,为了一所好大学而努力,去克服心中最原始的人性弱点,如懒惰、软弱、虚荣等。我当时虽然不知道像今天一样去引导自己,但是正是因为这种艰辛的环境,促成了我对自己情商最基本的认识,懂得去约束自己,为我未来的成功之路迈出了第一步。

在大学里,我跟很多人一样,想要实现自己的价值,想要自己赚钱养活自己。于是我做了很多事情,学生工作、家教、卖报纸、推销电话,只要是我想尝试的,我都努力去尝试。正因为这点点滴滴的遇事,让我开始懂得观察和思考,去探索自己最内心的思绪。

我大学的时候,在知识上完成了两次积累,一是对平面设计网页设计的知识积累,大概学了一年多的时间,曾一度希望靠做网站赚钱养活自己。二是对嵌入式的积累,在我接触单片机的那一瞬间,我就知道这辈子已经交给嵌入式了,而嵌入式,也必将成为我人生最重要的工具。因为这两次知识积累,我都是靠自学完成的,没有谁教我什么,一切都是靠自己摸索。所以深刻的相信,很多路,真的没人可以供你借鉴,只有靠你自己走,才能走出来。也正是这些学习经历,我开始懂得如何引导自己,我曾写过一篇《写在大学最后的一些话》(网址:http://www.q-sharewe.com/Qxw/viewtopic.php?f=6&t=9&sid=54a31ab3180fa8865c23330b22520ddf),就是讲述如何找到自己的兴趣,利用自己的兴趣去克服学习遇到的困难,去克服人性的弱点。

毕业之后,我也做过自己的产品,借此而创业,当然现实残酷的打击了我。我还换过好几份工作,结果发现都不是自己想要的工作。我曾一度迷茫,不知道未来会怎样,不知道中国是否有适合我的工作。我也一度很疯狂,拼命的学习新的东西,希望新的东西能够带给我更多的竞争力,让应聘单位知道我是一匹好马。我不断的反问着自己的人生,不断的思考,在这种基础下,两件事情改变了我。

第一件事情就是我看了一本书,叫《明朝那些事儿》,也许大多数人把这本书当小说看。但是我从来都是个喜欢多想的人,对于我而言,从这本书里感悟到的东西,远远比一本小说多。起码,我知道了王守仁,知道了心学,我才发现,我之前所总结的一切思想,原来是有依据的,原来也有人总结过(当然,我的总结比王守仁还差得很远,只能说我对自己的方法总结有向这个方向发展的趋势)。我开始成为一个唯心的人,我更加透彻的借助生活经历跟自己的内心对话。

第二件事情就是我开始炒股,从09年11月开始,我揣着自己的梦想和一万块钱进入二级市场,当然,我不是股神,现实也很残酷,虽然我小有自负,可是一万还是被我亏掉三千。现在也已经不记得当时的心痛,只不过我知道,我必须坚持。我曾不止一次的在自己写的东西里提到,促进事情成功的因素很多,可是决定成功的因素只有一个,就是坚持。当然,坚持也要有方法,我取出股市里的钱,告诉自己,如果不能将模拟股市中的十万变成十五万,就不再做实盘。于是在这样的环境下,我坚持认真对待自己的模拟盘,天天早上起来看新闻,每天花最少两个小时看盘。我跟一些老手聊天,他们说很难想象将虚拟盘看得和实盘一样,可是我做到了,它们在我看来是一样的。在我的坚持之下,我对股市的认识慢慢有了质的改变,更多的,我对自己人生的认识也有了质的改变。

我曾经在自己一系列的股市总结里提到,股市是人生的浓缩,做不好股市的人,人生也不会成功;人生成功的人,做股市也不会亏。我越来越发现股市和人生的共通:股市是赌,你每次下注,都不知道明天你的股票是跌是涨;人生之事也是赌,你永远不知道明天是加薪还是失业,你也不会知道你大学毕业后是得到什么或是感叹日子空虚。所不同的是,在股市里,你会拥有人性一切的弱点,只看虚幻的利而忽视风险。就是说,在股市里,你愿意下大筹码,去参与一个赢的概率小,但是赔率很大的赌局。而人生中,人显得更加理性,你愿意找一份安稳的工作,而不愿意去博一把,如创业,辞职再找更好的工作等等。相当于,在人生中,你愿意下小筹码,去参与一个赢的概率大,但是赔率比较小的赌局。

正是因为我人生的总总经历,加上当年明月对我的点拨,加上股市这场浓缩人生对我的摧残,加上嵌入式这项事业给我的实践机会,加上我自己勤于思考的习惯和我因为懒惰而学会引导自己的方法,让我终于有一天看通了所有的事情,让我完成了由量到质的蜕变。我发现,身边所有的所有,嵌入式,股市,工作,arm,开发环境,单片机,c语言,网页设计,google,淘宝,pcb,所有的所有,都只是工具而已,真正的核心,亘古不变的核心,只有一样,就是你的思维!

Photoshop\Dreamware只是一个工具,你要做的第一件事就是用自己的方法去掌握这个工具,完成量的积累。当你掌握这些工具,你的思维,才是决定你是否能成为优秀设计师的本质。你是否在看到一个平面广告或者网页的时候,默默的思考其最吸引人的理念?你是否在画图之前,就已经确切的知道,你要传递给看图者的感觉、理念或者价值是什么?你是否有一个思维库,将别人好的观念都放进来,将错误的思想都打上禁止符?

单片机、arm、操作系统、库也只是一个工具,你要做的第一件事情就是用自己的方法去掌握这些工具,完成量的积累。当你掌握了这些工具,你的思维,决定了你是否有成为优秀开发者的潜质。当你接触了足够多的构架芯片或系统,完成质变,你会发现,你和今天的我一样,你看所有的处理器,都是一样的,都是执行指令。你看所有的协议,都是一样的,都是指定io在指定时间指定电平。你学新的库,学新的操作系统,学新的构架,你不会再害怕,不再急躁,你会按部就班,从易到难,步步为营;你会发现,原来觉得不够用的资料,现在信手沾来,原来到处都是;你会发现,你不再去强迫自己记枯燥的知识,而是把握最核心的思想;你会发现,你不会再将自己的竞争力放在多熟悉一种芯片上,也不会放在年轻,记忆上,而是放在随着时间增长,经验增长会导致越来越完善的思维上。你会更加关注精而不是多,你会更加相信踏实的重要性,你会更加善于引导自己,而不是跟自己做斗争。你会发现,很多道理真的很简单很简单。这些是什么,这些就是思维!

股市,也不过是一个工具,它让你懂得人生的本质,要想赢,你就必须去参与赢的概率大的赌局,根据自己的承受能力去下注。它让你懂得,要克服内心的恐惧与贪婪,只有用自信和满足。它让你懂得,在最不能忍受的时候,依然要坚持。股市和人生,完全想通。这些是什么,就是思维!

创业,也只不过是一个工具,你要懂得自己在创造什么价值,是否有人需要这种价值,你如何将价值传递出去。做什么产品,只不过是个价值载体--工具而已!有了策划方案,有了营销手段,把握了思维,你才能赢。资金?工具而已!

工具思维方法_论还有很多实践案例,人生之中所有的事情,都可以用这种论点来思考,来指导,有如下几点中心思想:
1.工具是死的,思维是活的,遇到问题,一定要记住,你是万能的人,你要想办法,不能坐以待毙。山越不过,就绕过!这是典型的知行合一思想。
2.永远不要参与输的概率大于赢的概率的赌局,否则你失败,你坚持不下去,就不能怪任何人!
3.量的积累是很漫长的,多思考,可以减少积累的时间。量的积累是很艰辛的,要学会引导自己,而不是跟自己做斗争,人性的弱点无法战胜,却可以引导。(目前酷学玩倡导的,就是以兴趣为引导,让学习者学习更持久)。
4.可以暂时性的只关注你需要的,屏蔽你不需要的。
5.要记住坚持的重要性,但是要讲究方法的坚持,死扛性质的坚持,得到的效果往往并不理想!
6.站在各种角度思考问题,如,站在对方的角度。
7.要做一个开拓者,有时不一定要走别人的路,完全可以自己走出一条路。不要鄙视别人,不要羡慕别人,每个人有自己的路!
8.有时慢比快好,当你有了全局观,有了思维,你可以从容不迫的去做事。
9.做快乐真实的自己!

今天写这个文章是一个引子,以后我会逐步提取自己的思维,希望能总结更多的东西供大家借鉴!欢迎大家和我交流关于知行合一和工具思维论的主题,qq58081686 .谢谢! By YuanYin
 

 
回复

使用道具 举报

0

主题

4

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2011-5-15 11:05:03 | 显示全部楼层

RE:为什么要用ST库,一个从业软件工程师如何看待库。借此机会讨论工具思维论。

收藏了,楼主写的非常真切,适合很多像我这样的初学者的心境,我一定会从中汲取前进的动力。谢谢!
回复 支持 反对

使用道具 举报

0

主题

29

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2011-5-24 23:15:16 | 显示全部楼层

RE:为什么要用ST库,一个从业软件工程师如何看待库。借此机会讨论工具思维论。

收藏了,楼主写的非常真切,适合很多像我这样的初学者的心境,我一定会从中汲取前进的动力。谢谢!
回复 支持 反对

使用道具 举报

0

主题

19

回帖

0

蝴蝶豆

新手上路

最后登录
2018-6-24
发表于 2011-5-25 17:06:55 | 显示全部楼层

RE:为什么要用ST库,一个从业软件工程师如何看待库。借此机会讨论工具思维论。

没有细看库的api,不知道是否有些算法在里面吗?想学习实现功能的方法。
回复 支持 反对

使用道具 举报

6

主题

19

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2014-7-10 10:47:17 | 显示全部楼层

RE:为什么要用ST库,一个从业软件工程师如何看待库。借此机会讨论工具思维论。

收藏了,楼主写的非常真切,适合很多像我这样的初学者的心境,我一定会从中汲取前进的动力。谢谢!
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版