学习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年,最后抱怨嵌入式也太高了吧?!

看完这篇文章,相信你会醍醐灌顶,彻底搞清嵌入式linuxstm32的关系!

我从以下几点,彻底解决大家的问题:

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有用吗的主要内容,如果未能解决你的问题,请参考以下文章

STM32学习经验(补充)

K210学习笔记 K210与STM32串口通信相关

学习嵌入式STM32有必要吗,直接用ARM开发板怎么样?

stm32 学习困惑

本人有51单片机基础,准备往嵌入式发展,请问一下往后学习要学习stm32还是arm?

嵌入式Linux和stm32区别? 之间有什么关系吗?