参考STM32中文参考手册
一. GPIO相关配置寄存器
每组(如GPIOA,GPIOB)GPIO端口的寄存器包括
1.1 端口配置寄存器
由于STM32是32位的寄存器,一个寄存器只有32位,但是一个I/O口需要4个位来配置,所以一个寄存器32位只能配置8个I/O口,但是每一组有16个I/O口,所以需要两个端口配置寄存器(GPIOx_CRL和GPIOx_CRH)。
1.2 端口输入/输出数据寄存器(GPIOx_IDR/ODR)
GPIOx_IDR:
1.3 端口位设置/清除寄存器(GPIOx_BSRR)
它与端口输入/输出数据寄存器的区别:红色
1.4 端口位清除寄存器(GPIO_BRR)
二.引脚复用和重映射
2.1 复用:
2.2 重映射:
三.点亮一个LED小灯
3.1 查看原理图,找到LED的引脚
3.2 GPIO库函数介绍
3.3 编写LED小灯程序
3.3.1 打开一个工程模板,然后新建一个自己的文件夹MY(名字随便起),然后在新建一个led1.c和led1.h文件(名字随便起),加入到工程并编译看是否有错误。
3.3.2 在led1.c使能时钟
在rcc.h里找到RCC_APB2PeriphClockCmd()函数,然后对相应的LED引脚初始化。我的LED0引脚是PE0,所以使能GPIOE。
3.3.3 在led1.c中初始化GPIO
在gpio.h里面找到GPIO_Init()函数,然后对PE0引脚初始化,设置为推挽输出、速度为50MHz,并初始化为高电平。
3.3.4 编写main.c文件
3.3.5 编译下载调试
可以看到开发板上的LED小灯闪烁
4.操作寄存器点亮LED小灯
4.1 打开STM32中文参考手册,寻炸对应的寄存器。
4.2 使能GPIOE的时钟
由图可知,将APB2 外设时钟使能寄存器(RCC_APB2ENR)的第六位置1,即可使能GPIOE。
然后设置GPIOE.0端口模式:
然后设置GPIOE.0输出为1:
最后调用初始化函数,编写小灯闪烁的程序。