1、电源电路
2、复位电路
3、晶振电路
二、启动模式
1、通过BOOT[1:0]引脚选择三种;
2、设置串口下载代码,需配置BOOT0=1,BOOT1=0;
3、设置一按复位键就开始跑代码,需配置BOOT0=0,任何值BOOT1;
4、将内置SRAM设置为启动区,需配置BOOT0=1,BOOT1=1;
三、存储器映射
1、存储器地址通常是由MCU厂商或用户分配,而本身是不具有地址信息的,这一给存储器分配地址的过程为存储器映射;
四、寄存器映射
1、寄存器即为自己使用时设定的名称,该名称为给具有特定功能内存单元所取,且该单元已分配好地址;
2、而这个设定过程即为寄存器映射;
五、访问寄存器内容
1、采用的方式主要是通过指针的使用来操作STM32内存单元;
如设置STM32的GPIOC 0管脚输出低电平;
2、首先确定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)
5、定义GPIOC端口寄存器地址
#define GPIOC_BSRR *(unsigned int*)(GPIOC_BASE+0x10)
A、BSRR寄存器的BR0置 1为清零,GPIOC引脚0管脚,输出低电平;
GPIOC_BSRR = (0x01<<(16+0));
GPIOC_BSRR = (0x01<<(16+0));
B、BSRR 寄存器的BS0置1,GPIOC 0管脚输出高电平;
GPIOC_BSRR = 0x01<<0;
C、读IDR寄存器可知GPIOC全部引脚电平状态;
输入数据寄存器(GPIOx_IDR),其在每个APB2时钟周期都会捕捉I/O引脚上的数据;
unsigned int temp;
temp = GPIOC_IDR;




评论
发表评论