STM32学习记录_1、寄存器基础

初始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

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值