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将这些寄存器映射到了存储空间,则操作这些映射的空间,就代表在操作这些寄存器。如下图所示:

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

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

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

c 复制代码
/* 如上图:想要操作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
}
相关推荐
点灯小铭4 分钟前
基于单片机的多模式自动洗衣机设计与实现
数据库·单片机·嵌入式硬件·毕业设计·课程设计
La Pulga29 分钟前
【STM32】RTC实时时钟
c语言·stm32·单片机·嵌入式硬件·mcu·实时音视频
m0_5557629036 分钟前
STM32产品程序测试完整指南
stm32·单片机·嵌入式硬件
普中科技1 小时前
【普中Hi3861开发攻略--基于鸿蒙OS】-- 第 26 章 WIFI实验-AP 建立网络
单片机·嵌入式硬件·wifi·liteos·hi3861·普中科技
普中科技1 小时前
【普中Hi3861开发攻略--基于鸿蒙OS】-- 第 24 章 OLED液晶显示实验
单片机·嵌入式硬件·oled·liteos·hi3861·普中科技
冻结的鱼2 小时前
STM32H5 的 PB14 引脚被意外拉低的问题解析
stm32·单片机·嵌入式硬件
小莞尔3 小时前
【51单片机】【protues仿真】基于51单片机彩灯控制器系统
单片机·嵌入式硬件
文火冰糖的硅基工坊3 小时前
[嵌入式系统-146]:五次工业革命对应的机器人形态的演进、主要功能的演进以及操作系统的演进
前端·网络·人工智能·嵌入式硬件·机器人
老六哥_AI助理指南3 小时前
为什么AI会改变单片机的未来?
人工智能·单片机·嵌入式硬件
点灯小铭3 小时前
基于单片机的智能家居多参数环境监测与联动报警系统设计
单片机·mongodb·毕业设计·智能家居·课程设计·期末大作业