一、GPIO
1.点亮小灯
地址
- GPIOx的基地址&RCC基地址:官方手册->存储器和总线构架->存储器映像. 注意:数值变量应是指针所指位置的值
*( unsigned int * )0x40010C0C &= ~(1<<0);
- GPIOx不同引脚的类型说明:GPIO和AFIO->GPIO功能描述->外设的GPIO配置
- 时钟使能地址:小、中、大容量产品的复位和时钟控制(RCC)->RCC寄存器描述->APBx外设时钟使能寄存器
- 点亮步骤: 开启时钟->设置端口模式->写入数值
- 语法:置位 |= ,清0 &=~
- 当寄存器中以四位为一组来控制时,
( (1) << (4*1) )
这么写可以控制第二组的第0位
2. 用寄存器映射点亮小灯
定义
- 利用.h文件定义映射。
#define RCC_APB2ENR *(unsigned int*)(RCC_BASE+0x18)
- 使用时可以直接代替例1中的一串地址(之后就不用自己查地址啦!)
GPIOB_ODR &= ~(1<<0);
- 记得
#include "stm32f10x.h"
- 修改控制位前记得复位(例3的内容)
GPIOB_CRL &= ~( 0x0F<< (4*0));
Q:为什么不可以直接0xF。
4.结构体的形式点亮小灯
- 要点在于定义好变量的类型,这样定义结构体时,只要找到初始地址,空间就会自动分配了。