2.1 STM32芯片介绍

在微控制器选型中,工程师常常会陷入这样一个困局:一方面抱怨8位/16位单片机有限的指令和性能,另一方面抱怨32位处理器的高成本和高功耗。能否有效地解决这个问题,让工程师不必在性能、成本、功耗等因素中做出取舍和折中?

基于ARM公司2006年推出的Cortex-M3内核,ST公司于2007年推出的STM32系列单片机很好地解决了上述问题。因为Cortex-M3内核的计算能力是1.25DMIPS/MHz,而ARM7TDMI只有0.95DMIPS/MHz。而且STM32单片机拥有1μs的双12位ADC、4Mbit/s的UART、18Mbit/s的SPI、18MHz的I/O翻转速度,更重要的是,STM32单片机在72MHz工作时功耗只有36mA(所有外设处于工作状态),而待机时功耗只有2μA。通常STM32单片机工作在一定电压(5V)下,可用电流的大小表示其功耗。

由于STM32单片机拥有丰富的外设、强大的开发工具、易于上手的固件库,在32位微控制器选型中,STM32单片机已经成为许多工程师的首选。据统计,从2007年到2016年,STM32单片机出货量累计20亿颗,十年间ST公司在中国的市场份额从2%增长到14%。iSuppli的2016年下半年市场报告显示,STM32单片机在中国Cortex-M市场的份额占到45.8%。

尽管STM32单片机已经推出十余年,但它依然是市场上32位单片机的首选,而且经过十余年的积累,各种开发资料都非常完善,这也降低了初学者的学习难度。因此,本书选用STM32单片机作为载体,核心板上的主控芯片就是封装为LQFP64的STM32F103RCT6芯片,最高主频可达72MHz。

STM32F103RCT6芯片拥有的资源包括48KB SRAM、256KB Flash、1个FSMC接口、1个NVIC、1个EXTI(支持19个外部中断/事件请求)、2个DMA(支持12个通道)、1个RTC、2个16位基本定时器、4个16位通用定时器、2个16位高级定时器、1个独立看门狗、1个窗口看门狗、1个24位SysTick、2个I2C、5个串口(包括3个同步串口和2个异步串口)、3个SPI、2个I2S(与SPI2和SPI3复用)、1个SDIO接口、1个CAN总线接口、1个USB接口、51个通用I/O接口、3个12位ADC(可测量16个外部和2个内部信号源)、2个12位DAC、1个内置温度传感器、1个串行JTAG调试接口。

STM32系列单片机可以开发各种产品,如智能小车、无人机、电子体温枪、电子血压计、血糖仪、胎心多普勒、监护仪、呼吸机、智能楼宇控制系统、汽车控制系统等。