历史上的今天
返回首页

历史上的今天

今天是:2025年12月05日(星期五)

正在发生

2022年12月05日 | STM32入门系列-介绍STM32型号与功用

2022-12-05 来源:zhihu

作为STM32初学者,一般会选择购置一块开发板,因为在开发板上有很多已经集成好的模块,如红外模块、按键模块、LED模块、DAC模块、ADC模块、can模块、485模块、以太网模块、WiFi模块、蜂鸣器模块、SRAM模块、显示屏等。有的朋友可能要用stm32做红外探测小车,那么就需要用到红外模块;有的朋友可能需要用到WiFi模块进行通信产品的设计。下面贴上一张图我学习STM32时用过的开发板。



主要讲的内容分为三部分:

  • 什么是STM32;

  • STM32与ARM之间的关系;

  • STM32能做什么。

什么是STM32

从字面意义来看:

ST:意法半导体,是一个公司的名字。

M:Microelectronics的缩写,表示微控制器,要注意微控制器和微处理器的区别。

32:32bit的意思,表示这是一个32bit的微控制器。

STM32与ARM之间的关系

ARM是英国的一家芯片设计公司,其最成功的产品莫过于32位嵌入式CPU核——也就是我们现在介绍的ARM系列,而且最常用的是ARM7和ARM9,ARM公司主要提供IP(Intellectual Property core知识产权的核心)核,就是CPU的内核结构,只包括最核心的部分,而不是完整的处理器。ARM把这个核卖给各

大半导体公司,如飞利浦、三星、ATMEL,甚至Intel等许多公司。ARM为了提高对于8位机市场的竞争力,推出了一系列 Cortex-M核,STM32就是将Cortex-M作为内核,通过一些外设等组合封装在一起就成了如今流行的32位嵌入式处理器。

在上面贴图中的开发板使用的是STM32F103芯片,也就是M3内核。Cortex-M3采用ARMv7-M架构。

ARMv7架构定义了三个面向不同应用场合的系列:

  • “A”系列:面向基于虚拟内存的操作系统和用户应用;

  • “R”系列:针对实时系统;

  • “M”系列:面向微控制器。

Cortex-M4采用ARMv7-ME架构,Cortex-M0采用ARMv6-M架构,

Cortex-A5/A8采用ARMv7-A架构, 传统的ARM7系列采用的是ARMv4T架构。

看一下STM32系列产品是如何分类的,如下面图标所示。



STM32系列产品的分类命名规则,如下图所示。



STM32能做什么

STM32的用处取决于其内部资源,前面了解了STM32内部拥有非常多的通信接口。所以如果你使用的模块拥有此接口都可以通信。比如:

  • USART:ESP8266 WIFI模块、GSM模块、蓝牙模块、GPS模块、指纹识别模块等。

  • IIC:EEPROM、MPU6050陀螺仪、0.96寸OLED屏、电容屏等。

  • SPI:串行FLASH、以太网W5500、VS1003/1053音频模块、SPI接口的OLED屏、电阻屏等。

  • AD/DA:光敏传感器模块、烟雾传感器模块、可燃气体传感器模块、简易示波器等。

其他的一些接口这里就不罗列,反正STM32能做的东西太多太多。



在生活中可见的电子产品,如智能手环、微型四轴飞行器、平衡车、扫地机、移动POST机,智能电饭锅,3D打印机、机器人等


推荐阅读

史海拾趣

问答坊 | AI 解惑

电容隔直通交问题

对于电容器构造的简单描述是这样的:“一般由用电介质隔开的两个金属板构成。” 而关于电流的定义是这样的,“单位时间内通过导体横截面的电荷量。” 如果把电容看成一个横截面,那么 在电容两端加恒定电压U时,就会在两个金属板上分别积累正负 ...…

查看全部问答>

我的FLUKE196坏了,请大家给个建议。

fluke196示波表能做表,二个通道不示波,不知道是设置问题还是坏了,那位大虾指点一下 。…

查看全部问答>

有人询问NANDFLASH的寻址方式,简单说下

Nand Flash结构与读写分析 NAND Flash 的数据是以bit 的方式保存在memory cell,一般来说,一个cell 中只能存储一个bit。这些cell 以8 个或者16 个为单位,连成bit line,形成所谓的byte(x8)/word(x16),这就是NAND Device 的位宽。这些Line 会再 ...…

查看全部问答>

M22 如何发彩信

Atmega64 加明基M22gsm模块,如何实现彩信收发。也就是说与gprs连接需要发送那些数据?!!!。。。…

查看全部问答>

这个小程序有问题吗?

#include __CONFIG (INTRC & PROTECT & MCLREN & WDTEN); const unsigned char cs @ 0x1FF; void DelayUs( int  x)    // 32US {while(--x!=0)   { CLRWDT();     NOP();     unsigned ...…

查看全部问答>

请教EVC动态库调用方法

在EVC下开发程序,有一个基于MFC Extension的动态库,其中包含有多个对话框架及一个菜单项,现在创建一个MFC应用程序,不知怎么调用此动态库,求助一下大家,谢谢!…

查看全部问答>

VxWorks中的守护任务(daemon task)

Vxworks中的守护任务(daemon task)与一般的任务有什么区别?编写守护任务需要注意什么?最好能够举个实例。小女子初学vxworks,还请各位大侠不啬赐教,在此感激不尽。…

查看全部问答>

大家推荐个高精度的霍尔传感器吧,价格可不考虑!!!

现在要测量的电流最大15V直流 大家谁用过霍尔传感器的给推荐一下吧,用在PCB上的,要求精度高,成本可不考虑 多谢啦!!!…

查看全部问答>

如何将堆栈放置在RAM最尾端?

最近做项目的时候碰到了一个因为局部变量导致堆栈越界的问题,虽然最后靠扩大堆栈空间暂时解决了,但这也限制了全局变量的定义。有没有一种好的方法来解决这些问题了?看了看编译后的MAP文件,发现MDK将STACK放在了最后一个全局变量的后面。现 ...…

查看全部问答>

激电源及变压器设计

激电源及变压器设计…

查看全部问答>