01 

前言

在STM32之前,都是老大头51,带着它的“小弟们” MSP430、AVR、PIC在单片机界呼风唤雨。

那个时候,市场上遍布8位机,大学教材用51入门,个人、企业学单片机基本上也都在用51。

虽然AVR也有一些8位机市场,但与stc带领下的51单片机是完全不能相比的。

当然,这个时候也有16位机的msp430,其他厂家单片机还有pic,高端嵌入式处理器等市场有arm7、arm9等。

这个时期的单片机市场是百花齐放、百家争鸣,但总体来说,还是势均力敌、一片祥和的。

那么,这个局势是从什么时候开始打破的呢?这还得从物联网的崛起说起。

02 

原因

当时,物联网(Internet of Things,IoT)逐步进入人们的视野范围。随着它的发展,嵌入式领域对于高性能处理器的需求呈现爆发式增长。

虽然8位CISC(复杂指令)架构内核8051占据了半壁江山,但奈何其性能低下,寻址范围受限,已经难以适应更多的新兴应用领域。

而32位架构微处理器内核凭借其极佳的执行效能,不仅能满足物联网对数据处理能力的要求,还能兼顾物联网的低功耗和高性能要求,斩获物联网市场的独家宠爱。

在32位架构微处理器中,属ARM公司推出了面向各类嵌入式应用的微控制器核Cortex-M内核受到市场青睐,Cortex-M之于32位MCU就如同8051之于8位MCU。

而正是Cortex-M的出现,让ST公司看到了这个内核的强大之处——利用该内核设计了大放光芒的STM32,打破了曾经的单片机局面。

03 

崛起过程

如今,我们往回看那段历史,会发现一切改变都由那时发生——

从2007年6月11日推出第一代STM32产品——Cortex-M MCU STM32F1开始,单片机市场迎来了STM32新星,32位MCU浪潮,如期而至。


此后,芝麻开花节节高,STM32成功的故事也一直在延续。

ST公司陆续在每一年都基于新的内核或者新的技术领域有所突破,发布超过了19个STM32 产品系列,包括一个MPU产品线,生产工艺也从180nm不断进阶到110nm、90nm和40nm。

例如:

2009年推出了全球第一款超低功耗系列STM32 L1;
2010年推出了第一款在高性能的基于90纳米工艺、120 MHz 的STM32F2产品线;
2011年推成第一款高性能Contex-M4的处理器STM32F4;
......
2019年推出全球最为强大的第一款双核处理器STM32MP1、最新一代混合信号Contex-M4 MCUs和世界上最大的MCU STM32H7;
2020年推出全球首颗内置LoRa收发器的SoC——STM32WL。

“一只南美洲亚马逊流域热带雨林中的蝴蝶,偶尔扇动几下翅膀,可以在两周以后引起美国德克萨斯州的一场龙卷风。”

STM32这只小蝴蝶带来的改变效果也很明显。

2007年ST公司的通用MCU全球排名还只是第11位,2015年便上升到第3位,2018年上升到第2位,2018年则在中国供应商的排名中ST公司一举拿下第一的高地,此后数年,ST的地位几乎无人撼动。

04 

如何学习

入坑STM32后,我们应该如何学习?

如今,STM32堪称爆火,并且潜力无穷。所以,有很多人都在学STM32。

但STM32对入门者可能不是特别友好,因为知识很多,但是对于有一定开发经验的人来说,就是一把好兵器,它能帮你大大缩短开发周期。

那应该如何入坑STM32呢?

(1) 根据时间表定时定量学习

大学时期,都有实验室的学长学姐带着入门,安排任务。

比如,基本任务是一周内学完搭好环境、熟悉调试软件,结合《STM32Fxxx参考手册》、《STM32固件库使用手册》和光盘视频,实现基本篇的GPIO应用。

(2) 举一反三,并通过阶段任务检查学习效果

在学习例程时,可以尝试修改该例程的外设配置,达到举一反三的效果。

每一周,学长学姐会根据你的学习进度,安排给你一个阶段任务,用来检查你的学习效果。

如果你是自学,那么可以根据网上教程和各大资源网站上的“STM32入门小项目合集”,主动给自己找一个小项目,把它实现出来。

这里我推荐正点原子的资源,毕竟每次看视频时的片头曲“我的未来不是梦”让我对STM32充满激情,当然野火、小苗、普中也不错~

(3) 基本外设、功能会用就行,后期需要什么再去针对性地学

按部就班地把STM32知识从头到尾系统性地学习完,固然很好。但是,你要知道学习单片机只是为了解决问题,我们只要在遇到问题时,能够通过STM32解决就行。

因此,当你把基本外设、功能都差不多掌握了,程序能跑起来,并且也知道哪里可以修改、修改成什么就已经基本入门了。

此后,你可以通过一些大大小小项目,巩固理解和探索新功能,你的经验也随之增加。

(4) 学好C语言,可以学着画PCB制板、焊接

软件和硬件都要两手抓。C语言对于STM32的学习至关重要,C语言不好,还跑什么代码?学会画板子、焊板子,这样有什么需求,都可以自己添加。

当然,上面的建议都是给0基础的STM32入门者,若是你有一定基础,那当然是对症下药,哪里不会补哪里。

05 

学海无涯,勇于探索新技术

“学海无涯、永无止境”,更何况是每一年都在推陈出新的STM32。

事实上,STM32 的开发方式已经发生了很大的变化。

比如:

2014 年,ST 公司推出了 HAL 库和 MCU 图形化配置软件STM32CubeMX。

2017 年年底,ST 公司收购了 Atollic 公司,把专业版 TrueSTUDIO 转为免费软件。

2019 年 4 月,ST 公司正式推出了自己的 STM32 程序开发 IDE 工具软件 STM32Cube‍IDE1.0.0,打造了一个完整的 STM32Cube 生态系统。

而STM32Cube 生态系统已经完全抛弃了早期的标准外设库,STM32 系列 MCU 都提供 HAL固件库以及其他一些扩展库。

STM32Cube 生态系统的两个核心软件是STM32CubeMX 和STM32CubeIDE,且都是由 ST 官方免费提供的。

使用 STM32CubeMX 可以进行 MCU 的系统功能和外设图形化配置,可以生成STM32CubeIDE 项目框架代码,包括系统初始化代码和已配置外设的初始化代码。

如果用户想在生成的 STM32CubeIDE 初始项目的基础上添加自己的应用程序代码只需把用户代码写在代码沙箱段内,就可以在 STM32CubeMX 中修改 MCU 设置,重新生成代码,而不会影响用户已经添加的程序代码。

由此看来,使用STM32CubeMX 和 TrueSTUDIO 进行STM32 开发是一个良好的组合方式!

-END-

作者:人民邮电出版社

链接:https://www.zhihu.com/question/315130828/answer/2188401094

排版:张巧龙

他95年出生,却拥有10年编程经验

搞硬件,别吹牛了,好好做个规划!

读书到底为了什么,读研到底值不值?

STM32为何在诸多的单片机中脱颖而出?相关推荐

  1. STM32为何能在诸多的单片机中脱颖而出?

    01  前言 在STM32之前,都是老大头51,带着它的"小弟们" MSP430.AVR.PIC在单片机界呼风唤雨. 那个时候,市场上遍布8位机,大学教材用51入门,个人.企业学单 ...

  2. STM32为何能在众多单片机中脱颖而出?

    现在STM32资料教程如此丰富,但还是很多人学不会- 假如STM32像10年前的NXP单片机资料一样少,估计学不会的人会更多. 大家好,我是无际,一个踩坑单片机开发10年的老油条. 这些年,我用过很多 ...

  3. 2019全球PostgreSQL生态报告出炉,PG为何从RDBMS中脱颖而出?丨文末送书

    墨墨导读:本文是近期ScaleGrid发布的2019 PG趋势报告,从不同的角度解读了PostgreSQL如何在众多优秀的RDBMS中脱颖而出,原文:https://scalegrid.io/blog ...

  4. STM32单片机中WIFI模块数据传输问题(float->u32->u8/u8->u32->float)

    STM32单片机中WIFI模块数据传输问题(float->u32->u8/u8->u32->float)   最近在做毕业设计,在做wifi数据传输与接收时,涉及到了STM32 ...

  5. 联合体在单片机中的应用

    转自:http://baike.baidu.com/item/%E8%81%94%E5%90%88%E4%BD%93?fr=aladdin 联合体在单片机中的应用 单片机中经常会遇见分离高低字节的操作 ...

  6. 51单片机与STM32的区别(为何51单片机IO引脚的驱动能力弱)

    1.51单片机的特性 51单片机之所以成为经典,成为易上手的单片机主要有以下特点: 从内部的硬件到软件有一套完整的按位操作系统,称作位处理器,处理对象不是字或字节而是位.不但能对片内某些特殊功能寄存器 ...

  7. STM32芯片替代方案 | 从原厂资料中获取GD32F103VET6通信串口接口电路设计 | 第五集

    辉光管需要用到WiFi通信进行时间的更新,从网络中获取时间数据,所以需要使用串口通信.在一键下载电路中已经使用了串口0.所以单片机和WiFi的串口需要选择其他编号. STM32芯片串口接口引脚的确定 ...

  8. I2C知识大全系列三 —— I2C驱动之单片机中的I2C

    两种方式 单片机中的I2C驱动有两种方式.一种方式是用专用硬件I2C控制器实现,这种方式简单易行,品质也容易控制,只是会增加硬件成本方面的压力.另一种方式是用纯软件方式实现,这种方式几乎无硬件成本方面 ...

  9. 为什么单片机需要时钟系统,时钟信号在单片机中扮演怎样的角色?

    现在想想,我自学单片机都快一年了.我自学过8051.msp430和STM32,做一些基本的小项目,参加过2018年江苏省电子设计大赛,还获得了一等奖. 我懂,也不懂单片机.不懂就要去查资料,然后弄懂, ...

最新文章

  1. Xcode快捷键及代码块
  2. java连接rabbitmq_没用过消息队列?一文带你体验RabbitMQ收发消息
  3. ELK收集日志到mysql数据库
  4. VTK:PolyData之DeleteCells
  5. linux-查看文件相关命令-cat-more-less-head-tail
  6. SuperSocket框架命令不被识别的一种原因
  7. 华为S5300系列交换机V100R005SPH020升级补丁
  8. java iecapt.exe_java替换url的域名和端口方法
  9. Java8 实战系列-04-lambda 内置函数
  10. 有关于阿里云的历史-阿里云这群疯子
  11. 小米9 -MIUI12.5稳定版卡刷包与线刷包-V12.5.3.0.RFACNXM
  12. 强大的头像制作神器微信小程序
  13. 使用电脑热点和Fiddler对Android app进行抓包
  14. VUE连接MQTT即时通讯
  15. android 检查更新 卡住,阴阳师安装更新包卡住怎么办_安装更新包卡住解决办法...
  16. 802.11 a/b/g/n的理解
  17. win10停止更新_你的win10即将终止!各大版本服务终止日期大全,准备好了吗?...
  18. 级联rc滤波_RC低通,高通滤波电路的基本工作原理
  19. 数据结构之971: 统计利用先序遍历创建的二叉树的深度
  20. ipad文献管理软件_Mac上四款常用的文献管理软件,哪款适合你?

热门文章

  1. SAP UI5 /UI5/IF_UI5_REP_PERSISTENCE - why I cannot deploy app to GM6
  2. 动态修改dom node的两种方法性能比较
  3. 从SAP社区上的一篇博客开始,聊聊SAP产品命名背后的那份情怀
  4. ERP customizing extraction - how extraction function module is determined
  5. SAP云平台里UI5应用的build日志
  6. ABAP variable value in ST22 dump
  7. SAP CRM呼叫中心里link按钮的技术实现
  8. Chrome浏览器扩展程序的本地备份
  9. 数据可视化|实验二 分析特征间关系
  10. redhat5 oracle11g安装全程详解,RedHat5+Oracle11g安装全程详解.doc