作为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打印机、机器人等