如何配置STM32的端口寄存器

 时间:2024-10-12 06:18:36

1、对于每个GPIO端口,都有16个引脚,每个引脚的模式由寄存器的4个位控制,而每4位又分为两位控制引脚配置,即CNFY[1:0],和两位控制引脚的模式及最高速度,即 MODEy[1:0],其中的y表示第y个引脚,所以y的取值是从0~15,一共16个引脚;

如何配置STM32的端口寄存器

2、如上图所示,配置GPIO引脚模式的一共有两个寄存器,CRH是高寄存器,用来配置高8位引脚:pin8~pin15;另一个是CRL寄存器,负责配置低8位引脚:pin0~pin7;下面先来看如何配置高寄存器

如何配置STM32的端口寄存器

3、先将GPIOx_CRH寄存器的第28至29位设置为 “11”,则可以从步骤1的图中找到,MODEy[1:0] 中的“11”,表示最后一种模式:输出模式,并且设定最大速度为50HZ;同理,将第30位至31位设置为 “00”,则可以知道其表示设置为:模拟输入模式。

如何配置STM32的端口寄存器

4、在上一步骤中配置的4位,只能控制一个引脚,由于是在CRH中配置,则其28位至31位釉涑杵抑表示的是pin15,由于寄存器中的31~28位被设置为“0011惯墀眚篪”,即十六进制数为3,其余的引脚为默认值,则在配置时可以写为:GPIOA->CRH&=0X0FFFFFFF;GPIOA->CRH|=3<<28;此处假设使用的是GPIOA_pin15;

如何配置STM32的端口寄存器

5、先通俗的解释一下上一步骤的那句代码,想要控制Pin15,首先得把相关控制寄存器清零,即在对于的4个位写入零,然后把要设置的值“3”,通过移位操作送入对应的寄存器中就ok了。

如何配置STM32的端口寄存器

6、同理,步骤四中的图所示的是低寄存器配置,效果是一样的,只要想明白控制的过程,就不用怕一头雾水了,当然了,大神们就可以静静的飘过来,希望对有需要的人有所帮助。本人也是菜鸟一枚,有什么说的不对的地方,欢迎各位指正!

如何配置STM32的端口寄存器
  • java中怎样获取静态变量的值
  • breathe游戏怎么玩
  • 如何在matlab中配置TCP/IP通信的属性?
  • Proteus8.6软件最新版安装详细步骤
  • 如何设置NavicatPremium使用语法高亮显示模式
  • 热门搜索
    关于科技的手抄报图片 安全逃生手抄报 圣诞节手抄报内容英文 英语手抄报黑白 美文欣赏手抄报 国学经典手抄报花边 我的家乡手抄报图片 廉洁的手抄报 食品安全手抄报花边 感恩生命手抄报