STM32的相关简单介绍

发布于:2024-08-20 ⋅ 阅读:(69) ⋅ 点赞:(0)

一、什么是STM32

STM32是ST公司设计的一系列ARM Cortex-M为核心的32位微控制器

ST公司,即意法半导体集团(STMicrolectronics,简称ST),1987年成立·。由意大利的SGS微电子公司和法国Thomson半导体公司合并而成。

 在当下的32位微控制器中,STM32在工程师和市场中崭露头角,深受喜爱。

二、基于ARM Cortex内核的32位MCU和MPU

 在上图,我们可以看见当下基于ARM Coertex内核的32位的MCU和MPU。之后我将使用Cortex-M3系列的STM32F1xx进行开发学习。

图中所示STM32芯片型号的含义在后续会详细说明。

三、STM32的应用场景

STM32在生活中应用广泛,主要分布在物联网、工业自动化、汽车和消费电子以及医疗设备等领域。

STM32因其灵活性和强大的处理能力在市面上深受大众青睐

四、STM32系列MCU的命名规范

本次学习使用的STM32芯片是STM32F103ZET6,实物图如下

前面介绍了,STM32是一系列基于ARM架构的32位微控制器,既然是一系列,那么就说明有很多种。那么如何去对他们进行命名,有什么规则,不同芯片的型号中各个字符都代表什么含义呢?

请看下图,关于STM32、SM8的产品型号含义图表

 由图可知,各个部分都有不同的含义,一个STM32系列的MCU芯片型号主要由 家族+类别+功能+引脚数+闪存容量+封装方式+温度范围 构成。

关于图中封装部分的各个含义,可自行去查,这里就不在过多赘述。其中本次使用的QFP封装含义是四侧片平引脚封装,由上面的芯片实物图也一目了然。

对于此次使用的STM32F103ZET6型号芯片,根据上图可知(已用绿色方框标注),即 基础型144引脚512kb闪存四侧扁平引脚封装温度范围-40~+85℃的STM32芯片

 五、STM32的开发方式

STM32当下的开发方式主要有三种,即基于寄存器开发、基于标准库开发和基于HAL库开发。

他们各自有各自的优缺点,总结图如下

1、基于寄存器开发

基于寄存器开发需要深入硬件底层,有利于初学者学习STM效率更高,代码执行效率高,但开发起来难度较大基于初学者的学习需要,本次将会使用基于寄存器的开发方式

 2、基于标准库开发(本次不用

基于标准库开发,即所有底层的一些功能模块都用相应的库进行封装,更加通用于不同的STM32的开发,代码移植更容易。但同时会屏蔽一些硬件信息,不利于初学者学习,且ST公式已经停止对标准库的更新,不利于后续新产品的开发。 

3、基于HAL库开发

 HAL库是ST公式主推的STM32开发方式,且开发工具持续更新,力度大。相比于寄存器和标准库都具有更高的开发效率,移植更加容易。只不过这样也很不利于新手学习知识。

4、最终的选择

基于上述情况,本次STM32学习将同时基于寄存器开发和HAL库的开发

一方面,选择基于寄存器开发更有利于初学者深入学习STM32知识;另一方面,选择基于HAL库的开发更有利于我们快速上手STM32的开发,提高开发效率

基于以上两点,取其精华去其糟粕,实现双管齐下的效果。不过需要注意的是,学习难度可能相对较大,需要努力坚持。

六、STM32的开发工具

当前,STN32的开发工具主要有keil MDK、IAR、STM32CubeIDE以及近年来的工具新星Clion。其中,前两个是国内老牌的主流的STM32开发工具,同样也是各有优缺点。

1、Keil MDK(收费)

 目前国内主流单片机开发工具,历史悠久,调试功能强大,网上资料多

 通用IDE,兼容市面上大部分单片机

 由于偏向硬件开发,软件方面做的较弱,代码编辑能力弱、联想功能较差

尽管收费,但咱也有机会免费使用这款工具进行STM32开发。

2、IAR(收费)

目前国内主流STM32开发工具

兼容大多数单片机

代码编辑能力弱

3、STM32CubeIDE(免费)

ST官方推出,STM32开发友好

基于Eclipse工具链,界面现代化

仅限STM32,不支持其他单片机

相对Keil更耗电脑CPU资源

后期基于HAL库将会使用到

4、Clion(收费)

Jetbrains系列IDE,他家做过JAVA、python等IDE,非常好用

但近年来才推出的STM32开发工具,需要插件,网上资料较少,尚不完善

目前使用的人不这么多

5、最终选择

之后的学习期间,我主要使用Keil,且还会配合vscode进行开发,其中

Keil  --  编译下载调试

VScode  --  编码

在进行HAL库的学习时,还会用到STM32CubeMX,进行图形化配置。

后续将频繁使用到Keil MDK,所以这里先放个下载地址。

Keil MDK的官方下载地址:点击此处进入