如何配置STM32的端口寄存器

  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. 5

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

    如何配置STM32的端口寄存器

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值