STM32简介+stm32的16个年头发展现状+单片机高效学习方法
大家好,我是杰哥编程!!!
以下都是所有博客都会提到的关于st单片机历史的基本信息,我估计大家都看腻了
所以我会讲讲我目前知道的关于st公司除了这几款单片机型号资源以外的产品
让大家对st的产品有一些额外的认识
最后会面向小白讲讲入坑32如何学习!!!
欢迎关注我的Gitee仓库:gitee.com/wrj12138/em…
你印象中的STM32
什么是单片机?
单片机(Single-Chip Microcomputer)是一种集成电路芯片,把具有数据处理能力的中央处
理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功
能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成
到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
STM系列单片机命名规则
ST -- 意法半导体
M -- Microelectronics 微电子
32 -- 总线宽度
STM32F103C8T6单片机简介
项目 | 介绍 |
---|---|
内核 | Cortex-M3 |
Flash | 64K x 8bit |
SRAM | 20K x 8bit |
GPIO | 37个GPIO,分别为PA0-PA15、PBO-PB15、PC13-PC15、PDO-PD1 |
ADC | 2个12bit ADC合计12路通道,外部通道: PAO到PA7+PBO到PB1内部通道: 温度传感器通道ADC Channel 16和内部参考电压通道ADC Channel 17 |
定时器/计数器 | 4个16bit定时器/计数器,分别为TIM1、TIM2、TIM3、TIM4TM1带死区插入,常用于产生PWM控制电机 |
看门狗定时器 | 2个看门狗定时器 (独立看门狗IWDG、窗口看门狗WWDG) |
滴答定时器 | 1个24bit向下计数的滴答定时器systick |
工作电压、温度 | 2V3.6V、-40°C85°C |
通信串口 | 2 * IIC,2 * SPI,3 * USART,1 * CAN |
系统时钟 | 内部8MHz时钟HSI最高可倍频到64MHZ,外部8MHZ时钟HSE最高可倍频到72MHZ |
标准库与HAL库区别
- 寄存器众多,需要经常翻阅芯片手册,费时费力;
- 更大灵活性,可以随心所欲达到自己的目的;
- 深入理解单片机的运行原理,知其然更知其所以然。
- 将寄存器底层操作都封装起来,提供一整套接口(API)供开发者调用
- 每款芯片都编写了一份库文件,也就是工程文件里stm32F1xx…之类的;
- 配置结构体变量成员就可以修改外设的配置寄存器,从而选择不同的功能;
- 大大降低单片机开发难度,但是在不同芯片间不方便移植。
- ST公司目前主力推的开发方式,新的芯片已经不再提供标准库;
- 为了实现在不同芯片之间移植代码;
- 为了兼容所有芯片,导致代码量庞大,执行效率低下。
STM32系列单片机发展史
在中国,熟悉单片机的人士大多会听说过STM32。这是意法半导体(STMicroelectronics, 简称ST)的32位微控制器(MCU)家族,基于ARMCortex-M内核。
除了众人熟知的f1、f4系列,嵌入式开发新手们貌似不知道目前stm32单片机家族已经发展到了哪些境界
前几天我算了一下,stm32第一款单片机07年在国内公布诞生于北京现世至今23年,
刚好到了传统文化里的16岁成年了 特此出一篇文章讲讲STM32系列单片机这些年已经发展了多少种类
2007年:STM32诞生
我们简单回顾一下STM32的发展历程。2007年,STM32首次亮相。这是业界首款搭载ARM Cortex-M3内核的32位MCU,采用180nm闪存工艺,配有128KB闪存和20KB RAM,运行主频为72MHz,在当时属于相当高的配置。历史证明,这是一款超级成功的产品。它不仅为STM32家族开辟了一条康庄大道,而且自身也成为了一款长盛不衰的产品,至今仍是许多中国工程师的首选。
回顾这个时期的单片机市场本还是百花齐放、百家争鸣,但总体来说,还是势均力敌、一片祥和的。当时,物联网(Internet of Things,IoT)逐步进入人们的视野范围。随着它的发展,嵌入式领域对于高性能处理器的需求呈现爆发式增长。
虽然8位CISC(复杂指令集)架构内核8051占据了半壁江山,但奈何其性能低下,寻址范围受限,已经难以适应更多的新兴应用领域。
而32位架构微处理器内核凭借其极佳的执行效能,不仅能满足物联网对数据处理能力的要求,还能兼顾物联网的低功耗和高性能要求,斩获物联网市场的独家宠爱。
在32位架构微处理器中,属ARM公司推出了面向各类嵌入式应用的微控制器核 Cortex-M内核受到市场青睐,Cortex-M之于32位MCU就如同8051之于8位MCU。
而正是Cortex-M的出现,让ST公司看到了这个内核的强大之处——利用该内核设计了大放光芒的STM32,打破了曾经的单片机局面。
2009年:STM32L1系列
STM32L1系列是STM32的第一款,也是全球第一款超低功耗子系列,采用了Cortex-M3内核,并提供了多种不同的型号,以满足不同应用的需求。
2010年:STM32F2系列
2010年推出了第一款在高性能的基于90纳米工艺、120 MHz 的STM32F2产品线;
STM32F2系列引入了更高性能的Cortex-M3处理器,以及更多的外设和存储器选项,使其适用于需要更多计算能力和存储空间的应用。
2011年:STM32F4系列
STM32F4系列将性能提升到了一个新的水平,采用了Cortex-M4内核,具备浮点运算单元(FPU),可用于高性能计算和数字信号处理应用。
2012年:STM32F0系列
STM32F0系列是STM32的低成本系列,适用于成本敏感的应用。它们采用了Cortex-M0内核,提供了足够的性能和外设来满足许多基本嵌入式需求。
2014年:STM32F7系列
全球第一款cortex-M7内核的单片机STM32F7,该系列引入了更多高级特性,包括更多的外设、更多的存储器和更高的性能,适用于要求高性能的应用。
2016年:STM32H7系列
STM32H7系列继续提高性能,采用了Cortex-M7内核,以及更多的外设和存储器。这些单片机通常用于高性能计算、图形处理和数字信号处理应用。
2017年:STM32G0系列+STM32WB系列
STM32G0系列是低功耗系列,旨在满足电池供电的应用需求。它们采用Cortex-M0+内核,提供了低功耗和高性能的平衡。
STM32WB系列是针对物联网(IoT)应用的系列,具备双模式蓝牙(Bluetooth)和无线电(Wi-Fi)连接能力,以及Cortex-M4+M0异构双内核。
2019年:STM32MP1系列
STM32MP1系列不仅仅是微控制器,还具备了多核处理器,可用于高级嵌入式计算和Linux运行环境。
2020年:STM32WL系列
全球第一款板载Lora无线通信模块的片上单片机,同STM32WB系列服务于物联网应用。
STM32新支持
STM32 Trust
这几年消费电子,国内信创,全球区块链技术的兴起对信息安全的发展起到很重要的作用,单片机的性能提升也使他们自己能在这些领域发挥自己的作用。
所以设备变得越来越智能,连接性越来越强,这引起了更多的安全问题。如今,单片机开发面临着设计挑战,以确保其物联网设备的强大安全级别并保护设备完整性。
政府和监管机构正在提高对物联网设备安全重要性的认识,并制定了高标准来简化该方法。
嵌入式开发人员面临着新的挑战:
- 在几个新的认证计划中遵守不同法规的必要性
- 不断增加的可扩展性要求
- 当今设备中使用的多个MCU开发框架和实时操作系统,这增加了安全性的复杂性
- 缺乏安全专业知识和需要提高他们的技能,这需要时间和金钱
芯片原厂们也考虑到这些问题,研发新支持,简化产品研发公司的开发流程:
st公司做了以下:
STM32Trust简化了您的安全方法。STM32 MCU和MPU将安全性置于开发人员和市场监管之间的中心。
安全实施由意法半导体在安全保证的背景下开发,并符合安全方案。它们还旨在满足不同级别的行业标准的不同要求,以提供更大的可扩展性。
STM32Trust解决方案为开发人员提供了强大的多级策略,以增强新产品设计的安全性。它基于我们的STM32微控制器和微处理器,结合我们的STSAFE安全元素。
用一套12 种安全功能STM32Trust提供意法半导体和第三方的硬件、软件和设计服务,符合国家法规和安全标准对应用的新要求。
STM32 AI
工具
STM32官网 AI训练构建自己的神经网络以及推理工具介绍使用
芯片板子
STM32N6,首款带有NPU的MCU即将问世!?
(md 其实已经说了好几年了 博主天天想着啥时候可以买 实际产品一直没推出来),
官网23年4月新发博客可以看看,看文章意思应该是可以申请云测试:
STM32官网 AI开发板已经在云测试
扯远了(其实是写博客写累了哈哈哈哈哈哈)
32该怎么学???
入坑STM32后,我们应该如何学习?
如今,STM32堪称爆火,并且潜力无穷。所以,有很多人都在学STM32。
但STM32对入门者可能不是特别友好,因为知识很多,但是对于有一定开发经验的人来说,就是一把好兵器,它能帮你大大缩短开发周期。
那应该如何入坑STM32呢?
我觉得大学生时实验室里一脉相传的STM32学习方法挺不错的,分享给大家。如果你能适应这种学习路线,那么轻松上手STM32绝对没问题!
下面具体说说:
(1)根据时间表定时定量学习
大学时期,都有实验室的学长学姐带你入门,安排任务。
比如,基本任务是一周内学完搭好环境、熟悉调试软件,结合《STM32Fxxx参考手册》、《STM32固件库使用手册》和光盘视频,实现基本篇的GPIO应用。
(2)举一反三,并通过阶段任务检查学习效果
在你学习例程时,你可以尝试修改该例程的外设配置,达到举一反三的效果。
每一周,学长学姐会根据你的学习进度,安排给你一个阶段任务,用来检查你的学习效果。
如果你是自学,那么可以根据网上教程和各大资源网站上的“STM32入门小项目合集”,主动给自己找一个小项目,把它实现出来。
这里我推荐具备项目驱动型的单片机课程资源,以实现有趣的项目为目的,更能激发大学生的学习兴趣,毕竟是大学生自己的单片机课让我对STM32充满激情
(3)基本外设、功能会用就行,后期需要什么再去针对性地学
按部就班地把STM32知识从头到尾系统性地学习完,固然很好。但是,你要知道学习单片机只是为了解决问题,我们只要在遇到问题时,能够通过STM32解决就行。
因此,当你把基本外设、功能都差不多掌握了,程序能跑起来,并且也知道哪里可以修改、修改成什么就已经基本入门了。
此后,你可以通过一些大大小小项目,巩固理解和探索新功能,你的经验也随之增加。
(4)学好C语言,如果在大一大二期间就掌握以上内容,可以学着画PCB制板、焊接 甚至深入学习armlinux
软件和硬件都要两手抓。
C语言对于STM32的学习至关重要,C语言不好,还跑什么代码?
学会画板子、焊板子,这样有什么需求,都可以自己添加。
当然,上面的建议都是给0基础的STM32入门者,若是你有一定基础,那当然是对症下药,哪里不会补哪里。
学海无涯,勇于探索新技术