STM32 GPIO 寄存器的配置

举报
JeckXu666 发表于 2022/01/18 00:54:05 2022/01/18
【摘要】 了解了GPIO口的工作原理,我们下一步的操作就是如何去配置GPIO,今天我将分享一下我对GPIO配置的了解(参考资料:正点原子开发手册) 配置每组IO口的寄存器:(每一组一套寄存器) 1、两个32位的...

了解了GPIO口的工作原理,我们下一步的操作就是如何去配置GPIO,今天我将分享一下我对GPIO配置的了解(参考资料:正点原子开发手册)

配置每组IO口的寄存器:(每一组一套寄存器)

1、两个32位的配置寄存器;GPIOx_CRL,GPIOx_CRH
2、两个32位的数据寄存器:GPIOx_IDR,GPIOx_ODR
3、一个32位置位/复位寄存器:GPIOx_BSRR
4、一个16位的复位寄存器GPIOx_BRR
5、一个32位的锁定寄存器GPIOx_LCKR

详解 :

CRL和CRH控制IO口,是四个位控制一个口,所以要两个32位的来控制16个口

1、GPIOx_CRL:端口配置低寄存器:

每个口由四位控制,为MODE+CNF联合配置,具体模式在下图中。(输入要与输入对应,输出也要与输出对应)
在这里插入图片描述
具体对应输入输出配置表(对上图的详解):
在这里插入图片描述

2、GPIOx_CRH:端口配置高寄存器(与低配置寄存器一样,这里把配置图放这,供大家参考)

在这里插入图片描述

3、GPIOx_IDR:端口数据输入寄存器:

32位寄存器其中16-31位一直保留,始终为0;0-15位则对应着16个IO口,1为高电平,0为低电平。
在这里插入图片描述

4、GPIOx_ODR:端口数据输出寄存器:

与数据输入的配置差不多,但是ODR在输入模式下可以控制上升沿和下降沿的配置!(前面也提到)
在这里插入图片描述
在这里插入图片描述

5、GPIOx_BSRR:端口位设置/清除寄存器:

BSRR比之上面的寄存器有些复杂,但也不是很难,32位分两个16位高和低,共同控制ODR数据输出寄存器的每一位输出;具体的控制方式在下图中。高低位0不产生影响,高位置1则对应ODR位为0.低位置1则对应ODR为1;高低位同事作用时,则只有低16位起作用!
在这里插入图片描述

6、GPIOx_BRR:端口位清除寄存器:

该寄存器与上面BSRR高16位作用相同,F1中有些赘余,但F4中已优化。
在这里插入图片描述
锁定寄存器不常用到,我在就没有详细了解,今天就写到这里吧!
以上就是常用寄存器配置的讲解!

文章来源: blog.csdn.net,作者:JeckXu666,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_45396672/article/details/102800870

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。