GPIO端口的BSRR的使用

BSRR 只写寄存器

既能控制管脚为高电平,也能控制管脚为低电平。
对寄存器高 16bit 1 对应管脚为低电平,对寄存器低16bit1对应管脚为高电平。写 0 ,无动作

首先看GPIOC的定义

接着看这个类型的定义

可以看到BSRR为无符号的32位的整形

接下来看GPIO_Pin_13的定义

可以看到为无符号的16位置的整形。

	GPIOC->BSRR|=	GPIO_Pin_13<<16;   //给高16位写1  对寄存器高 16bit 写1 对应管脚为低电平 写 0 

接下来理解上边的那一行代码

将pin13引脚的值左移16位,此时相当于在高16位写1。高16位写1,为低电平。

GPIOC->BSRR = GPIOC->BSRR| GPIO_Pin_13; //给低16位写1   	对寄存器低16bit写1对应管脚为高电平 写 0 ,无动作

直接将pin13引脚的值写入,此时相当于在低16位写1。低16位写1,为高电平。

最终理解

BSRR的初始值为0x00000000,当使用BSRR给引脚写入低16位(0x2000),此时就会写入0x00002000(将这个值写入IDR),随后BSRR又会变为0x00000000。当使用BSRR给引脚写入高16位(0x20000000),此时就会写入0x20000000(将这个值写入IDR),随后BSRR又会变为0x00000000。

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值