STM32F103系列芯片中对CRH、CRL端口配置寄存器的操作*

STM32F103系列芯片中对CRH、CRL端口配置寄存器的操作
1、CRL(端口配置低寄存器(GPIOx_CRL))的操作
CRL操作寄存器的低8位(bit0~bit7).
在GPIO模拟IIC时序中有以下例子:

#define GS_SDA_IN()  {GPIOB->CRL&=0XFFFFFFF0;GPIOB->CRL|=8;}
#define GS_SDA_OUT() {GPIOB->CRL&=0XFFFFFFF0;GPIOB->CRL|=3;}

GPIOB->CRL&=0XFFFFFFF0将PB0引脚输出模式对应的寄存器清空,GPIOB->CRH|=8即GPIOB->CRH=0XFFFFFFF8,此处将bit(1:0)(MODE0[1;0])设置为00(=00),bit(3:2)(CNF0[1:0])设置为10,即将端口PB0设置为上/下拉输入模式;同理GPIOB->CRL|=3即GPIOB->CRH=0XFFFFFFF3,此处将bit(1:0)(MODE0[1;0])设置为11(>00),bit(3:2)(CNF0[1:0])设置为00,即将端口PB0设置为通用推挽输出模式,可参考下表
在这里插入图片描述
2、CRH(端口配置高寄存器(GPIOx_CRH))的操作
CRH操作寄存器的高8位(bit8~bit15).
在GPIO模拟IIC时序中有以下例子:

#define GS_SDA_IN()  {GPIOB->CRH&=0XFFFFFFF0;GPIOB->CRH|=8;}
#define GS_SDA_OUT() {GPIOB->CRH&=0XFFFFFFF0;GPIOB->CRH|=3;}

GPIOB->CRL&=0XFFFFFFF0将PB0引脚输出模式对应的寄存器清空,GPIOB->CRH|=8即GPIOB->CRH=0XFFFFFFF8,此处将bit(1:0)(MODE8[1;0])设置为00(=00),bit(3:2)(CNF8[1:0])设置为10,即将端口PB8设置为上/下拉输入模式;同理GPIOB->CRL|=3即GPIOB->CRH=0XFFFFFFF3,此处将bit(1:0)(MODE8[1;0])设置为11(>00),bit(3:2)(CNF8[1:0])设置为00,即将端口PB8设置为通用推挽输出模式,可参考下表
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值