Lession1

单片机资源(三大资源):

程序存储空间(ROM:Read Only Memory):用来存储用户写的程序代码。

数据存储空间(RAM:Random Access Memory):用来存储程序运行过程中需要的以及产生的数据。

特殊功能寄存器(SFR:Special Function Register):用来控制单片机执行各种不同功能,用户通过读写特殊功能寄存器让单片机执行不同的功能。

单片机STM32F103ZE有512K字节的FLASH(程序存储空间),64K字节的静态SRAM(数据存储空间)


STM32的GPIO端口配置流程:

GPIO(General Purpose Input Output):STM32的IO口统称,单片机的一个重要外设。

以点亮LED为例对STM32F103的IO口输出操作流程:①配置端口时钟,②配置端口模式,③配置输出数据。LED小灯接在STM32的端口G的第7、8引脚。

Lession1_第1张图片
GPIO端口配置

1.配置端口时钟(时钟使能)

        GPIO外设挂在APB2总线上。“复位和时钟控制(RCC)寄存器”的基地址是0x40021000,“APB2外设时钟使能寄存器”的偏移地址是0x18,该寄存器的第8位控制端口G的时钟使能(1:开启,0:关闭)。                                                                                                        开启端口G时钟使能的语句为 *(unsigned int *)0x40021018 |= (1 << 8)

2.配置端口模式

STM32的IO口模式有8种:浮空输入、上拉输入、下拉输入、模拟输入;开漏输出、推挽输出、推挽复用功能、开漏复用功能。

        CNF1/0表示模式,MODE1/0表示输出速率。                                                                                模式为输入:默认MODE1和MODE0是00;模式为输出:表示三种不同的最大输出速率。

Lession1_第2张图片
I/O口配置模式(输出模式)

      GPIO端口G的基地址是0x40012000。端口配置寄存器有高低之分(低寄存器偏移地址0x00,高寄存器偏移地址0x04),复位值是0x44444444,复位后CNFx[1:0]是01,MODEx[1:0]是00,即每个IO口复位后是浮空输入模式。若配置为推挽输出模式,速率为10MHz:即CNFx[1:0]是00,MODEx[1:0]是01(0001)。                                                                                     比如:GPIO端口G的第7引脚,即配置端口低寄存器的28~31位为0001。
       代码为 *(unsigned int *)0x400012000 |= (1 << 28)

3.配置输出数据

       STM32的GPIO输出数据寄存器相对端口的偏移地址为0x0c。寄存器的0~15分别对应GPIO端口的16个IO口(高电平1,低电平0),复位值为0x0000 0000,默认复位后输出低电平。比如:控制GPIO端口G的第7引脚输出高电平:*(unsigned int *)0x4001200C |= (1 << 7)

程序编写

int 


编译信息

Code=1348:代码占用了1348个字节的程序存储空间
Ro-data(Read Only):只读常量的大小
RW-data(Read/White):已初始化的可读写变量的大小
ZI-data(Zero Initialize):未初始化的可读写变量的大小

Lession1_第3张图片
编译输出信息

你可能感兴趣的:(Lession1)