一、设计思路
本实验使用GPIOB、GPIOC、GPIOD这3个端口控制LED灯。GPIO 是通用输入输出端口的简称,简单来说就是 STM32 可控制的引脚,STM32 芯片
的 GPIO 引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。
1.GPIO 模式
把连接到 LED 灯的 GPIO 引脚 PB0 配置成输出模式,即配置 GPIO 的端口配置低寄存器 CRL,把 PB0 配置为通用推挽输出
GPIOB_CRL &= 0xFF0FFFFF;// 清空控制 PB0 的端口位
GPIOB_CRL |= (1<<4*0);// 配置 PB0 为通用推挽输出
在代码中,我们先把控制 PB0 的端口位清 0,然后再向它赋值“0001 b”,从而使GPIOB0 引脚设置成输出模式,速度为 10M。代码中使用了“&=~”、“|=”这种操作方法是为了避免影响到寄存器中的其它位,因为寄存器不能按位读写,假如我们直接给 CRL 寄存器赋值:1 GPIOB_CRL = 0x0000001;
这时 CRL 的的低 4 位被设置成“0001”输出模式,但其它 GPIO 引脚就有意见了,因为其它引脚的 MODER 位都已被设置成输入模式。
2.控制引脚输出电平
在输出模式时,对端口位设置/清除寄存器 BSRR 寄存器、端口位清除寄存器 BRR 和ODR 寄存器写入参数即可控制引脚的电平状态&#