STM32学习(3)-GPIO相关寄存器,引脚复用和重映射,点亮LED小灯(库函数、寄存器)

参考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:

GPIOx_ODR:
在这里插入图片描述

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:

在这里插入图片描述

最后调用初始化函数,编写小灯闪烁的程序。

在这里插入图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值