STM32单片机是由意法半导体公司(ST, STMicroelectronics)研发的32位基于ARM(Advanced RISC Machine)内核的微控制器(MCU, Microcontroller Unit)。STM32系列分为不同的系列,有STM32F,STM32G,STM32H,STM32L,STM32U等这几个系列,如图1所示。
图1 STM32不同系列展示
在STM32的每个系列中又包含不同的内核的单片机,比如在STM32F系列里面有基于Cortex-M0内核的STM32F0系列,Cortex-M3内核的STM32F1、STM32F2系列,Cortex-M4(F)内核的STM32F3、STM32F4系列,Cortex-M7内核的STM32F7系列。这些系列中的不同单片机又有不同的功能侧重、引脚数量以及封装、内存闪存容量等区别。一般来讲,我们可以根据需求,先选择内核以及外设,确定所用的单片机的大致范围,然后选择含有合适引脚和SRAM以及FLASH空间的MCU,接下来进行电路设计与软件设计。后文基本上以STM32F407ZGT6芯片为例,兼顾STM32F303ZET6芯片,从硬件和软件两方面来记录。其中STM32F407ZGT6型号中STM表示意法半导体的MCU,32代表32位MCU,F代表基本型的单片机,F4表示基于ARM的Cortex-M4(F)的MCU,407表示具体的型号,表示互联型的MCU(可以连接到以太网),Z表示引脚数量,144个,G表示MCU内部Flash有1MByte,T表示LQFP封装,6表示温度范围,-40℃~85℃。之所以选择STM32F4系列和STM32F3系列的单片机,是因为其都是基于ARM的Cortex-M4F内核,包含单精度的浮点运算单元(FPU, Floating Point Unit),在我们后面做设计的时候(比如说信号处理的时候),可以开启FPU以提高我们单片机的计算速度。