首页 > 应用 > 单片机应用
[导读]STM32的每个GPIO端口都有两个特别的寄存器,GPIOx_BSRR和GPIOx_BRR寄存器,通过这两个寄存器可以直接对对应的GPIOx端口置'1'或置'0'。 GPIOx_BSRR的高16位中每一位对应端口x的每个位,对高16位中的某

STM32的每个GPIO端口都有两个特别的寄存器,GPIOx_BSRR和GPIOx_BRR寄存器,通过这两个寄存器可以直接对对应的GPIOx端口置'1'或置'0'。

本文引用地址: http://www.21ic.com/app/mcu/201807/779007.htm

GPIOx_BSRR的高16位中每一位对应端口x的每个位,对高16位中的某位置'1'则端口x的对应位被清'0';寄存器中的位置'0',则对它对应的位不起作用。

GPIOx_BSRR的低16位中每一位也对应端口x的每个位,对低16位中的某位置'1'则它对应的端口位被置'1';寄存器中的位置'0',则对它对应的端口不起作用。

简单地说GPIOx_BSRR的高16位称作清除寄存器,而GPIOx_BSRR的低16位称作设置寄存器。另一个寄存器GPIOx_BRR只有低16位有效,与GPIOx_BSRR的高16位具有相同功能。

举个例子说明如何使用这两个寄存器和所体现的优势。例如GPIOE的16个IO都被设置成输出,而每次操作仅需要改变低8位的数据而保持高8位不变,假设新的8位数据在变量Newdata中, 这个要求可以通过操作这两个寄存器实现,STM32的固件库中有两个函数GPIO_SetBits()和GPIO_ResetBits()使用了这两个寄存器操作端口。

上述要求可以这样实现:

GPIO_SetBits(GPIOE, Newdata & 0xff);

GPIO_ResetBits(GPIOE, (~Newdata & 0xff));

也可以直接操作这两个寄存器:

GPIOE->BSRR = Newdata & 0xff;

GPIOE->BRR = ~Newdata & 0xff;

当然还可以一次完成对8位的操作:

GPIOE->BSRR = (Newdata & 0xff) | (~Newdata & 0xff)<<16;

从最后这个操作可以看出使用BSRR寄存器,可以实现8个端口位的同时修改操作。 如果不是用BRR和BSRR寄存器,则上述要求就需要这样实现:

GPIOE->ODR = GPIOE->ODR & 0xff00 | Newdata;

使用BRR和BSRR寄存器可以方便地快速地实现对端口某些特定位的操作,而不影响其它位的状态。 比如希望快速地对GPIOE的位7进行翻转,则可以:

GPIOE->BSRR = 0x80; // 置'1'

GPIOE->BRR = 0x80; // 置'0'

或:

GPIOE->BSRR=1<<7;

GPIOE->BRR=1<<7;

如果使用常规'读-改-写'的方法:

GPIOE->ODR = GPIOE->ODR | 0x80; // 置'1'

GPIOE->ODR = GPIOE->ODR & 0xFF7F; // 置'0'

有人问是否BSRR的高16位是多余的,请看下面这个例子:

假如你想在一个操作中对GPIOE的位7置'1',位6置'0',则使用BSRR非常方便:

GPIOE->BSRR = 0x4080;

如果没有BSRR的高16位,则要分2次操作,结果造成位7和位6的变化不同步!

GPIOE->BSRR = 0x80;

GPIOE->BRR = 0x40


换一批

延伸阅读

[新鲜事] 全新Netduino 3登陆Mouser,新增Wi-Fi连接功能

全新Netduino 3登陆Mouser,新增Wi-Fi连接功能

贸泽电子(Mouser Electronics) 开始分销Netduino 3电子平台,能够使商业硬件解决方案和个人电子项目快速上市,同时提供了最大的设计灵活性并降低了风险。最新版本的开源Netduino平台不但具有让先前版本广受欢迎的最佳......

关键字:Netduino STM32F4

[半导体] 意法半导体新STM32软件开发工具套件让电机控制设计更快、更容易

意法半导体新STM32软件开发工具套件让电机控制设计更快、更容易

中国,2018年3月21日——通过使最新的STM32 PMSM FOC软件开发套件(SDK)支持STM32Cube开发生态系统(订货代码: X-CUBE-MCSDK),意法半导体进一步简化在STM32* 微控制器上开发先进的高能效电机驱动器......

关键字:ST STM32 电机控制

[单片机新闻] 意法半导体STM32H7系列微控制器利用全新Arm 平台安全架构强化互联智能设备保护功能

 意法半导体STM32H7系列微控制器利用全新Arm 平台安全架构强化互联智能设备保护功能

Arm平台安全架构(PSA)采用高性价比、领先技术全面提升物联网市场的安全技术支持 基于STM32H7系列开发的Arm® Cortex®-M7微控制器整合PSA概念和先进的安全功能服务......

关键字: 意法半导体 STM32 微控制器

[真心话] 还在烦恼吗?几招教你搞定技术人在工作场合下的穿衣打扮

还在烦恼吗?几招教你搞定技术人在工作场合下的穿衣打扮

最近一段时间,代表公司与外面的一些合作伙伴会谈,也组织本单位的技术人员与外面的一些技术人员举行研讨,整个过程的参与者都是技术出身的人,参加的个别经理首先也是资深工程师出身。......

关键字:技术人员

[真心话] 开发工程师们的人生之路

开发工程师们的人生之路

本文作者将为你揭示开发工程师人生之路的点点滴滴,希望有所启发和帮助。......

关键字:开发工程师

[新鲜事] 不可思议的发现:华裔科学家发现改变世界基础物理“天使粒子”

不可思议的发现:华裔科学家发现改变世界基础物理“天使粒子”

美国斯坦福大学物理学教授张首晟及其团队在《科学》杂志上发表了一项重大发现:在历经80年的探索之后,他们终于发现了“马约拉纳费米子”的存在。......

关键字:华裔科学家 基础物理 天使粒子
条评论

我 要 评 论

网友评论

技术子站

更多

人才招聘

更多

项目外包

更多

推荐博客