01、单片机简介

1、什么是单片机

单片机(Single-Chip Microcomputer)是一种微型计算机,是一种集成电路芯片。把具有数据处理能力的中央处理器CPU、随机存储器RAM、闪存flash、多种片上外设等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。如下图为STM32F103系列单片机的系统结构图:

在这里插入图片描述

对F103系列单片机内部结构的简要介绍

😀CPU:单片机的核心,用于代码的执行,数据的处理和计算等
😀Flash:闪存掉电不丢失,读写速度较慢。①用于存放代码被编译为可执行文件(代码区)和一些常量数据,②存放BootLoader程序,空间为2KB,③存储选项字节数据(即一些配置参数),空间为16B
😀SRAM:临时存储器掉电会丢失,读写速度较快。①用于划分栈空间和堆空间,②栈空间存储代码执行时临时变量的数据,③堆空间是用户自己开辟,用于存储数据
😀片上外设:具有特定的功能的设备,若GPIO,UART等
😀总线:用于CPU和存储器,CPU和外设之间的通信

2、STM32F103ZET6介绍

2.1、参数的含义

在这里插入图片描述

由上图所示:STM32F103ZET6属于M3内核,主频72MHz,Flash为512KB,高密度的单片机

2.2、存储器映射

STM32单片机一共有32位地址总线,则地址由0x0000 0000 ~ 0xFFFF FFFF。而在单片机中一个基本的存储单元是一个字节,如下图所示:
在这里插入图片描述
那么0x00 00 00 00 ~ 0xFF FF FF FF一共有多少个字节的空间喃?
答案:一共由2^32 = 4294967296个字节(B) = 4194304KB = 4096MB = 4GB的寻址空间。所以STM32最大空间范围为4GB。

虽然可以寻址 4GB 的空间,但实际可用的存储空间(如 Flash、SRAM)要小得多。其余的地址范围可能会被映射到其他功能区域(如外设寄存器、内存映射的I/O设备等)。

具体的存储器映射如下图所示:

在这里插入图片描述

3、外设寄存器介绍

STM32F103ZET6该芯片是STM32F103系列里面配置非常强大的芯片。它拥有的资源包括:64KB SRAM、 512KB FLASH、 2 个基本定时器、 4 个通用定时器、 2 个高级定时器、 2 个 DMA 控制器(共 12 个通道)、 3 个 SPI、2 个 IIC、 5 个串口、 1 个 USB、 1 个 CAN、 3 个 12 位 ADC、 1 个 12 位 DAC、 1 个 SDIO 接口、1 个 FSMC 接口以及 112 个通用 IO 口。该芯片的配置十分强悍,并且还带外部总线(FSMC)可以用来外扩 SRAM 和连接 LCD 等,通过 FSMC (可变静态存储控制器)驱动 LCD,可以显著提高 LCD 的刷屏速度。

由上图所示:STM32F103ZET6将片上外设的寄存器映射到起始地址为0x4000 0000的空间里面。那什么是寄存器喃?
在这里插入图片描述
寄存器简单来说,可以理解为功能的开关盒子,一个特定的功能对应着一个特定的开关盒子。假设向这个盒子里面写入1代表开启这个功能,那么写入0就代表关闭这个功能。而一个片上外设有很多的功能,所以与之对应的就有很多的寄存器。

而STM32将这些寄存器映射到了存储空间,则操作这些映射的空间,就代表在操作这些寄存器。如下图所示:

在这里插入图片描述

如上图:寄存器直接映射到与之对应的空间,直接对映射空间操作就能操作寄存器。那么怎样操作映射空间喃?
答案:使用指针,演示代码如下:

/* 如上图:想要操作USART寄存器的PE写入1 */
int main(void)
{
    *(uint32_t *)(0x40013800 + 0x00) |= 0x01; //给PE写入1
}

【注意】对寄存器的映射空间进行操作时只能通过寄存器的基地址+偏移地址进行操作,即只能寻址到映射空间的起始地址,这与计算机中的内存对齐有关,如下:

/* 如上图:想要操作USART寄存器的LBD写入1 */
int main(void)
{
    *(uint32_t *)(0x40013800 + 0x00) |= 0x0100; //给LBD写入1
}

//下面的错误操作
/* 如上图:想要操作USART寄存器的LBD写入1 */
int main(void)
{
    *(uint32_t *)(0x40013801) |= 0x01; //给LBD写入1
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值