01
话 题
常常有在校大学生同学们担心:我到底是学STM32或是学嵌入式linux。这个问题很多人都是有自已的观点,今天我尝试从好几个视角,将我掌握到的客观事实讲一下,期待对各位有一定的启迪。
嵌入式驱动开发 - Linux开发设计必不可少:1钟头轻松玩儿文档I/O程序编写 - 创客学院直播间02
STM32的确好
最先得认同STM32的确好,好到STM32都变成单片机MCU的代称了,如今很多人乃至说单片机时默认设置便说STM32,事实上也有许多单片机的啊。
STM32的第一大益处便是:就业岗位的确多,社会需求多。大家学点技术图什么?
还没有为了更好地找个工作赚薪水。
自然我承认大伙儿都是有更高远的理想化,可是即使你要造火箭弹也得毕业之后先能找出工作中挣钱生活逐渐。
因此假如你我明白了个东西都没企业要,都找工作难,那学它毫无疑问错。
你何不去各种招聘平台搜索一下,STM32有关职位确实许多,你假如STM32玩的溜,找个工作确实不是问题。
并且大部分一二线城市都是有工作中机遇,这一点更难能可贵。
汇总一下,学STM32毫无疑问没有错,这东西最少能让您有份工作。
STM32的第二大益处便是:他是很常见的MCU,可以使你把握充足的MCU开发设计工作能力。换句话说即使你在工作上必须使用别的MCU,譬如说NXP的LPC系列产品,Cypress、TI的MCU系列产品,而等你从未遇到过彻底不容易。
可是,如果你灵活运用STM32,就能迅速入门这种MCU的研发工作中。
最终,STM32也有个优点便是绿色生态已是,知名度大。现阶段许多国内MCU生产商如GD、人民技术等在发布的国内MCU也是对比STM32的,在开发方法乃至是固定件库层面都和STM32十分相近。
综上所述,把握STM32的确很有效,STM32较大的特征便是确实,把握这一招式很有助你寻找一份工作中,在单片机硬件软件技术工程师这条道路可以先上道,摆脱第一步。
03
STM32的局限
不能说STM32不太好,只有说有局限。
STM32较大的局限便是:它仅仅个单片机。
换句话说,你学习培训STM32,实际上学的全是单片机有关的技术。
例如GUI层面,你学STM32很有可能会学emWin,或是touchgfx,或是littlevgl等,可是你几乎都不可能去学QT和android这些,由于STM32上一般不跑这种。(如今QT也是有QT for MCU,也在STM32H7上干了协作,可是应用面比较有限,绝大多数人绝大多数新项目不容易应用)。
因此你学得的GUI技术统统是MCU行业运用的,而这种和流行的GUI的前面与领域模型分离出来的策略模式(典的WPF,Android,或web前端设计方案等)是有不一样的,因而你学得的东西也是有局限性的。
再例如网络技术应用层面,STM32大部分运用也不带互联网,即使带互联网通常也是用通讯摸组,非常少会想要你根据socket层立即程序编写,而这才算是网络编程的重要招式。
因此许多做STM32很多年的技术工程师,事实上对互联网很生疏,乃至是一窍不通。
04
客观性对待STM32
客观性去看看,STM32开发设计的确是电子相关技术专业同学们可以去学习的一项招式。
换句话说,假如你准备学单片机,那样STM32肯定是优选。
当然,优选不是说只学STM32,其实我本人更建议的单片机学习培训途径是首先用51新手入门,再升阶到STM32,那样更合乎学习培训规律性,学习效果会高些。
所以说学STM32是没有错的。
可是不是说只学STM32,这一务必弄清楚。
iPhone很好吃,吃桃子对身体好,难道说你只吃桃子吗?
因此我觉得恰当的看待STM32的工作态度是:
第1条:去学没有错,学这一毫无疑问有效。第2条:并不是务必学,倘若你工作中并不是单片机开发设计,实际上不容易STM32并不危害。第3条:不必只学STM32,一定要拓展别的招式,不然面太窄了,太局限性。05
嵌入式Linux是STM32最好是的拓宽
假如你STM32早已学得非常好了,提议拓宽学习培训linux。
很多人感觉linux应用沒有STM32普遍,应用linux的产品远沒有应用STM32的机器设备多,招聘职位中linux有关都没有STM32有关的多,因此不应该去学linux而应当去学STM32。
这一思想观点是错的。
由于这种思想观点把STM32和linux用来比照了,殊不知这2个东西压根沒有对比性。
你比照这2个就仿佛比照单车和汽车,你觉得单车的竞争优势是划算,好维修,不堵车,无需交停车收费,不油耗这些,你能说出来单车相对性汽车的许多优点,殊不知该买汽车的你为他个单车可以吗?
汽车是单车的拓宽,linux是STM32的拓宽,是如此的大道理。
后者相对性前面一种是更新的重要,而不是平行面的关联。
06
为什么说Linux是STM32的拓宽
大家说linux是STM32的拓宽,实际上是以技术视角考虑的。
换句话说从技术的持续性,技术难度系数,技术扩展方位视角讲,STM32把握后再去扩展linux是特别适合的。
例如C语言,STM32使用的C语言特点和难度系数都需要小于linux。
因此如果你根据灵活运用STM32的流程早已一定水平把握了C语言,再去学嵌入式linux,读linux源代码时,就会察觉自己的C语言基本功获得了提升。
但你读惯了linux核心源代码后,再转过头来看STM32的标准库,HAL库时,就会觉得轻松了许多。
从APP层级而言也是那样。
比STM32更简易的单片机,例如51单片机,基本上不应用函数库,全是程序猿自身从零开始程序编写的。
51单片机的生产商一般也不会让你给予单片机的固定件库,主要是太容易没必要。
而STM32就必须固定件库,无论是初期的标准库或是如今的HAL库,全是集成ic生产商带来的固定件库,来协助程序猿来开展开发设计。
到了嵌入式linux环节,分层次就更繁杂了。
和硬件配置有关的编码一部分变成linux的推动层,板载硬件配置管理方法由linux核心建立接手,顾客业务流程作用则由linux应用软件来进行。
假如必须互联网,GUI等作用,也都是有十分专业的核心层和网络层网络资源移殖连接。
所以说,从技术视角讲,嵌入式linux是彻底遮盖了STM32的。
07
嵌入式Linux的优点
实际上学习培训linux也有许多优点。
Linux核心可以说全部开源项目小区的大成者,过去几十年间有很多一流高品质程序猿向linux kernel奉献编码和观念,也是有很多的第三方开源软件根据linux的一些部件或linux的设计方案观念来搭建。
例如中国如今挺火的国内物联网技术电脑操作系统rt-thread,你来读它的源代码就会发觉,这彻底便是linux的味道啊。的物联网技术电脑操作系统LiteOS,他的源代码中每个部件中间隔开连接的osal设计方案,也是linux kernel中大量的应用的方法。
所以说为何要学linux?
因为它确实可以使你一劳永逸的处理往后面职业生涯发展中碰到的绝大多数技术要求。
大家学习培训技术还有一个非常大问题便是:你今天始终不清楚明日会干什么工作,会需要什么招式。
很有可能你下一个月开家最新项目新每日任务,大哥就会让你一个名字的东西陪你玩。你怎样才能迅速入门呢?
我的工作经验,最信得过的便是学精linux。由于你会看到你碰到的一切东西都是有linux的身影。
如果你学精了linux,有这一基本功,你学习培训一切新东西时都是会迅速。
我当初下定决心学精linux便是由于分派到一个指纹密码锁产品研发的新项目,使用的计划方案是一个开发设计的,他的开发工具是用cygwin,我先前从没触碰过。瞎折腾了大半天构建好自然环境我一看,这并不便是linux的命令嘛。还行我刚刚触碰过简易的linux命令,一下子觉得这一新项目就不会太难了。
自此我便了解到linux的必要性了,狠下功夫好好学习了linux,这些年回来,过多客观事实实例证实,那时候的管理决策十分贤明。
08
不必限定自身
最终说一句,始终不必人为因素为自己限制,不必自身局限性自身。
人要踏踏实实,不必眼高手低,这一没有错。
学51,学STM32这都没有错,很具体,很贴近生活。
假如你耗尽了奋力也就能将就学精这种,那么就做单片机开发设计,也可以寻找工作中。
可是假如你也有余力,还想要再次下苦功夫学习培训,那样不必限定自身,再次向更高端前行,永攀技术高峰期。
要认为社会发展不容易委屈你,会用升职加薪来感恩回馈你。
嵌入式开发设计网络课程 - STM32 USART串口通信的运用 - 创客学院直播间