STM32 ARM学习锦集一

STM32 ARM学习锦集一

内容简介

1、最小外围电路

2、启动模式存储器

3、映射寄存器映射

4、访问寄存器内容

5、GPIO工作模式

6、安装KEIL5

7、GPIO初始化

8、端口配置及输出模式

9、启动文件功能

10、固件库文件

一、最小外围电路

电源电路

复位电路

晶振电路

下载电路

二、启动模式

通过BOOT[1:0]引脚选择三种;

设置串口下载代码,需配置BOOT0=1,BOOT1=0;

设置一按复位键就开始跑代码,需配置BOOT0=0,任何值BOOT1;

将内置SRAM设置为启动区,需配置BOOT0=1,BOOT1=1;

三、存储器映射

1、存储器地址通常是由MCU厂商或用户分配,而本身是不具有地址信息的,这一给存储器分配地址的过程为存储器映射;

四、寄存器映射

1、寄存器即为自己使用时设定的名称,该名称为给具有特定功能内存单元所取,且该单元已分配好地址;

2、而这个设定过程即为寄存器映射;

五、访问寄存器内容

1、采用的方式主要是通过指针的使用来操作STM32内存单元;

如设置STM32的GPIOC 0管脚输出低电平;

首先确定GPIOC挂接于APB2总线上,确定其地址;

STM32总线地址

总线名称 总线基地址 相对外设基地址的偏移

APB1 0x4000 0000 0x0

APB2 0x4001 0000 0x0001 0000

AHB 0x4001 8000 0x0001 8000

3、宏定义外设基地址

#define MS_BASE ((unsigned int)0x40000000)

4、分别定义APB2总线基地址

#define APB2MS_BASE (MS_BASE + 0x00010000)

5、宏定义端口外设地址

#define GPIOC_BASE (APB2MS_BASE + 0x1000)

定义GPIOC端口寄存器地址

#define GPIOC_BSRR *(unsigned int*)(GPIOC_BASE+0x10)

STM32 ARM学习锦集一

A、BSRR寄存器的BR0置 1为清零,GPIOC引脚0管脚,输出低电平;GPIOC_BSRR = (0x01<

B、BSRR 寄存器的BS0置1,GPIOC 0管脚输出高电平;

GPIOC_BSRR = 0x01<<0;

读IDR寄存器可知GPIOC全部引脚电平状态;

输入数据寄存器(GPIOx_IDR),其在每个APB2时钟周期都会捕捉I/O引脚上的数据;

unsigned int temp;

temp = GPIOC_IDR;

浅谈GPIO结构

六、GPIO工作模式

通用输入输出端口统称;

输入浮空

输入高阻抗,外部干扰对输入状态下的影响较小

STM32 ARM学习锦集一

输入上拉

3、输入下拉

4、模拟输入

5、开漏输出

只可输出低电平,输出高电平需要外接上拉;

开漏输出具有线与功能,当内部出现一个总线动作为低,则输出全部为低,如I2C的使用;

STM32 ARM学习锦集一

开漏复用功能

STM32 ARM学习锦集一

7、推挽式输出

8、推挽式复用功能

推挽输出开关效率高,驱动能力强;

灌电流即为输出高电平,电流输出到负载;

七、安装KEIL5

Keil5需要单独安装芯片包,否则无法选择芯片类型,Keil4则可以不用此操作。

芯片包直接双击安装在KEIL5相应的目录即可;

使用注册机破解;

1、管理员身份运行KEIL5;

2、File-LicenseManagement;

STM32 ARM学习锦集一

3、复制代码;

STM32 ARM学习锦集一

4、Add LIC,完成破解;

STM32 ARM学习锦集一

八、GPIO初始化

1、确定GPIO的工作模式和工作速度

通过配置寄存器GPIOx_CRL、GPIOx_CRH;

输出内容

置/复位寄存器:BSRR;

数据输出寄存器:ODR;

九、端口配置及输出模式

STM32 ARM学习锦集一

STM32 ARM学习锦集一

十、启动文件功能

1、初始化堆栈指针SP;

2、初始化程序计数器指针PC;

3、设置堆/栈的大小;

A、堆是程序在运行时,申请/给予内存的过程,由系统自动分配释放;

B、栈/堆栈是指一种使用堆的方法-先进后出,由程序员分配释放;

4、设置中断向量表入口地址;

5、配置外部SRAM作为数据存储器;

6、调用 SystemInit() 函数配置系统时钟;

ARM Cortex微控制器软件接口标准CMSIS;

十一、固件库文件

1、标准外设库称为固件库;

2、是一个固件函数包,由程序、数据结构、宏组成;

3、使用固件库可减少程序编写开发时间;


分享到:


相關文章: