无论做什么芯片的开发,都需要看芯片手册及其附带的资料。针对STM32单片机,我们能够借鉴的手册有《Cortex-M3权威指南(中文)》《STM32中文参考手册》(通常都是英文的,我们再翻译,这也是懂一些基础英语的重要性),此外,还有官方的《ST MCU选型手册》《STM32F103RC_Datasheet》。
其实除了ST意法半导体公司出厂的芯片,还有许多像NXP出品的32位芯片,也并不是只有简简单单的STM32F103RC系列的芯片,还有F2、F4系列等等。
上图就是官方提供的选型图片,相信看完就大概知道自己根据功能选什么系列的芯片了。正是由于芯片的多样性,业内使用ST意法半导体制作的芯片的公司还是处于多数的。
那么STM和我们经常听到的ARM又是怎样一个关系呢?
stm32的内核由ARM设计,而随着更新迭代,也从ARM命名到了Cortex。而我们今天介绍的STM32F103RCT6就是采用的Cortex-M3内核架构。做详细的设计开发,离不开《Cortex-M3权威指南(中文)》这本书,读的越透彻越好,但是只读这些太单调了,我们还是以了解和快速入门为主,有时间根据工作需要再精进。
STM32F103RCT6芯片共有引脚64个,引脚基本原理图如下:
stm32开发需要借助keil5软件,安装好F1的芯片包后就能正常编写烧录F1芯片的程序,没包也行,就是看着出一堆乱七八糟的界面而已。对于stm32的引脚我们有必要注意一下。与51单片机的P3口类似,我们的32芯片引脚都具备着第二或者第三功能,叫做端口复用。平时是通用IO引脚,开启复用功能后就能使用复用功能了。
比如PA9和PA10,平时就是普通的IO输入输出功能,开启USART时钟后就是串口通信功能了,只是复用功能需要开启至少两个时钟(通用IO和复用功能所在的时钟)。
提到时钟,下图是重中之重,弄明白这张图,开发啥功能的时钟配置都不是事。
重点看SYSCLK后面的时钟走向,各种功能分别接在了不同的时钟分支上,重要的几个是 APB1 上面连接的是低速外设(最大36MHz),包括电源接口、备份接口、 CAN 、USB 、I2C1、I2C2、UART2、UART3 等等, APB2 上面连接的是高速外设包括 UART1、SPI1、Timer1、ADC1、ADC2、所有普通 IO 口、第二功能 IO 口等。
除了复用功能这一强大的能力,还有端口重映射这一精彩的设计。能够将原本的复用功能引脚映射到其他引脚上,当然需要参考《STM32中文参考手册》一书具体查看了。
PB6和7就能开启神奇的旅途了,其配置步骤除了前面的端口复用两个时钟配置,还要使能AFIO时钟,并且开启(使能)重映射功能。