文章目录
初始STM32
STM32 的命名方法
STM32F103RCT6
ST:ST 是意法半导体
M:是 Microelectronics 的缩写
32:表示 32 位,STM32合起来理解,就是指 ST 公司开发的 32 位微控制器
F:表示基础型
103:基础型
R:引脚数目,64pin,其他常用的为 C 表示 48,V 表示10, 表示 14,Z 表示144,B表示208N表示216
C:FLASH大小,256kb,其他常用的B表示128,E表示512,I表示2048
T:封装,QFP,这个最常用
6:表示温度等级为A:-40~85°
如何寻找 IO 的功能说明
有两个官方资料我们会经常用到,一个是参考手册(英文叫 Reference
manual),另外一个是数据手册(英文叫 Data Sheet)
什么是寄存器
STM32 长啥样
左下角的小圆点表示 1 脚,然后从 1 脚起按照逆时针的顺序排列(所有芯片的引脚顺序都是逆时针排列的)。
有两个小圆点,以小的那个为准。
一个圆点都没有,正看丝印。
芯片里有什么
STM32 芯片是已经封装好的成品,主要由内核和片上外设组成成。若与电脑类比,内核与外设就如同电脑上的 CPU 与主板、内存、显卡、硬盘的关系。
STM32F103 采用的是 Cortex-M3 内核,内核即 CPU,由 ARM 公司设计。ARM 公司并不生产芯片,而是出售其芯片技术授权。芯片生产厂商 (SOC) 如 ST、TI、Freescale,负责在内核之外设计部件并生产整个芯片,这些内核之外的部件被称为核外外设或片上外设。如 GPIO、USART(串口)、I2C、SPI 等都叫做片上外设。
具体见图 STM32 芯片架构简图。
STM32F10xx系统框图
什么叫存储器映射?
存储器本身不具有地址信息,它的地址是由芯片厂商或用户分配,给存储器分配地址的过程就称为存储器映射。再分配一个地址叫重映射。
32位,4GB,八个块,一个块512MB,
Block0:就是放FLASH,我们的mini用了256KB
Block1:mini用了64KB,SRAM介绍: SRAM
Block3\4\5:内存相关,STM32通过FSMC可以与SRAM、ROM、PSRAM、NOR Flash和NANDFlash存储器的引脚直接相连。FSAM介绍:FSAM
Block7:内部外设
什么叫寄存器?(寄存器映射)
有特定功能的内存单元,通常我们会给这个特殊的内存单元取一个名字,这个给已经分配好地址的有特定功能的内存单元取别名的过程就叫寄存器映射。
问题1:
1、根据存储器映像找到外设起始地址,
2、寄存器偏移地址
1+2,找到寄存器真正的物理地址,也是内存地址
问题2:
强转的作用是告诉编译器是一个地址,不是一个数
也可以这样写:
STM32寄存器映射 C语言对寄存器的封装
总线基地址(总线是什么)
也叫外设基地址
APB1挂载低速,最大时钟36M。APB2挂载高速,最大时钟72M。
GPIO基地址(外设是什么)
APB2为例
APB2的基地址Base + 地址偏移 = 外设基地址
GPIOB为例,端口的寄存器列表
总线和外设基址宏定义
1<<0是1左移0,为0000 0000 0000 0001
这样的话PB0或上1,就为高电平,其他的都保持不变。
~(1<<0)为1111 1111 1111 1111 1110
这样的话PB0与上0,就为低电平,其他的都保持不变。
使用结构体封装寄存器列表?
使用结构体指针访问寄存器
定义GPIO端口基地址指针
平时见的都是这种,在stm32f10x.h中