学习stm32有用吗
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习stm32有用吗相关的知识,希望对你有一定的参考价值。
还是很有用的,如果你想要从事相关工作,stm32是重点要学习的。可以简单的搞个stm32开发板,做个小项目;
丰富一点的,可以加上linux系统的;
再丰富点的,可拓展物联网人工智能的内容;
再丰富点的,可以接入大厂云平台。
一个板子就可以搞定——FS-MP1A开发板。我用的是华清远见的开发板。主控芯片是用的stm32mp157(ARM双核 2个A7核,1个M4核)。这个板子可以学Linux,也可以学stm32。配套的学习资源也很丰富,教程视频都有。当然,如果现在你只想搞个stm32的小项目,可以先只考虑stm32这块。长远发展,建议要学linux呀。 参考技术A 是非常有用的,能在低成本的情况下自行制作许多DIY产品,提高自己的创客能力,为以后进入嵌入式能有一个足够的了解。
嵌入式Linux和stm32区别? 之间有什么关系吗?
本人从事嵌入式单片机开发11年,很多人对嵌入式、单片机、STM32、Linux傻傻分不清楚。
导致学习过程走了很多弯路,明明只需要几个月学习时间,却浪费了1-2年,最后抱怨嵌入式也太高了吧?!
看完这篇文章,相信你会醍醐灌顶,彻底搞清嵌入式linux和stm32的关系!
我从以下几点,彻底解决大家的问题:
1.嵌入式开发的几个方向
2.什么时候用嵌入式Linux?什么时候用单片机?
3.嵌入式Linux和单片机(stm32)开发的区别
一、嵌入式开发的几个方向
以前有很多童鞋问我:无际哥,嵌入式和单片机有什么区别,选哪个比较好?
大概是,大家认为嵌入式开发就是跑Linux系统的ARM芯片吧。
其实嵌入式开发分很多个方向的,这要由不同性能的处理器说起:
上图是目前嵌入式开发主流的一些处理器。
而单片机作为嵌入式微控制器MCU,就包含在嵌入式开发里面,嵌入式是一个大类别,单片机是其中一个细分方向。
像8051、AVR、STM32等等就是属于单片机的范畴,只是制造厂家不同,芯片性能也不同。
除此以外,大家常说的ARM+Linux大概就是指嵌入式微处理器MPU,这种处理器性能更强悍,所以一般跑Linux或者安卓系统。
由不同的嵌入式处理器,衍生出不同的职业方向,主流的有以下几个:
1.单片机工程师
2.Linux驱动开发
3.Linux系统开发工程师
4.Linux应用工程师
5.安卓系统开发工程师
6.FPGA/DSP开发
二、什么时候用嵌入式Linux?什么时候用单片机?
这取决于产品对芯片性能的需求,如果你的产品功能很复杂,有显示屏播放视频之类的需求,或者需要处理复杂的算法,一般会使用ARM硬件平台+Linux的方案。
我想强调的是,ARM是一个内核,并不是所有ARM内核的芯片都跑Linux。
STM32也是属于ARM内核,但大多数型号并不跑Linux。
ARM根据性能也分很多版本,具体可以看下图:
一般上了ARM9级别的处理器,就会配合Linux系统,做更更高端的应用,这也是大家常说的嵌入式ARM+Linux开发。
如果是一些简单的,则采用单片机。
但是有一点不可否认,如果能用单片机,老板绝对不会选择ARM+Linux,因为单片机成本低,产品开发周期短、容易维护、功耗低、尺寸小等优势。
单片机是”裸机编程”,最多也就加个实时操作系统(RTOS),所以上电初始化程序简单,实时性也比较高。
ARM+Linux虽然能做很多复杂的功能,但是实时性会比单片机要差一点。
三、嵌入式Linux和单片机(stm32)开发的区别
主要体现在以下几个方面:
1.硬件资源不同
单片机一般是芯片内部集成flash、ram,ARM一般是CPU,配合外部的flash、ram、sd卡存储器使用。
STM32现在也出了高端的MPU,可以跑Linxu的,比如STM32MP157F。
外设方面,ARM也比单片机要多很多,也更复杂。
2.程序存储位置不同
单片机程序一般比较小,上百Kb的程序逻辑已经相对复杂的了,所以大多数产品程序一般存储在片内flash。
ARM+Linux程序比较大,还加上Linux系统,一般存在外部的存储器,如sd卡、mmc、sata等。
3.程序开发环境不同
单片机大多数是用Keil、IAR等等,开发环境比较简单。
ARM+Linxu则复杂很多,具体可以参照芯片方案。
程序的编译时间也不是一个级别的,单片机只需要几十秒,ARM+Linux,如果再跑上安卓系统,我很久以前玩过一次rk3288的,重头编译,电脑配置不错的话,大概需要几个小时。
4.调试工具不同
单片机:硬件开发板,仿真器(调试器),USB转串口线。
ARM+Linux:硬件开发板,网线,USB转串口线,SD卡。
我们在调试基于STM32单片机的时候,一般会采用st-link去仿真调试程序,查找bug。
而ARM+Linux开发,一般不会用硬件的调试器,一般是通过串口打印信息进行调试,特别是做应用开发的时候。
四、最后总结
ARM+Linux和stm32之类的单片机,两者之间是不同的产品方向和职位方向,没有什么关联性。
单片机更偏向于硬件,ARM+Linux更偏向于应用。
当然,如果你单片机玩的很溜,再去学习ARM+Linux会理解的更深刻,效率也更高。
最后彩蛋时间!!!
最近很多小伙伴找我要一些单片机学习资料,然后我根据自己从业十年经验,业余熬夜肝了几个通宵,精心整理一份「单片机入门到高级教程+工具包」,全部无偿共享给大家!!!
除此以外,再含泪分享我压箱底的22个热门开源项目,包含源码+原理图+PCB+说明文档,让你迅速进阶成高手!
据说有小伙伴靠这份资料顺利进入BAT大厂,所以保存了一定要好好学习。
教程资料包和详细的学习路径可以看我下面这篇文章的开头。
单片机入门到高级开挂学习路径(附教程+工具)https://blog.csdn.net/weixin_43982452/article/details/114134096
以上是关于学习stm32有用吗的主要内容,如果未能解决你的问题,请参考以下文章