对于STM32 GPIO端口的复位寄存器(GPIOx_BRR)和置位/复位寄存器(GPIOx_BSRR)的疑问???

我知道GPIO_SetBits()函数能把GPIOx的某一引脚置为高电平,GPIO_ResetBits()函数能把GPIOx的某一引脚置为高电平,也知道是通过操作置位/复... 我知道GPIO_SetBits()函数能把GPIOx的某一引脚置为高电平,GPIO_ResetBits()函数能把GPIOx的某一引脚置为高电平,也知道是通过操作置位/复位寄存器(GPIOx_BSRR)和复位寄存器(GPIOx_BRR)来实现的。
但是为什么对这两个寄存器赋值就能使引脚的电平变化呢?《STM32中文参考手册_V10》我也看了,还是不明白这两个寄存器是怎么控制IO口的啊。。。

其实学51的时候(看的郭天祥的书)我就不太明白这些寄存器。reg51.h 中用类似“sfr P0 =0x80;”的语句把名字和寄存器联系起来,然后我们往地址为 0x80 的寄存器设值的方法是:P0=0x00; ,这样P0寄存器的值就是我们给的0x00值了,然后呢?然后P0口就自动全为低电平了??????

求大神赐教~
这是我在看《开发指南-库函数版本_V1.3》时碰到的疑问,以前学51时没在意过寄存器,现在发现问题了。。。
展开
 我来答
匿名用户
2015-04-26
展开全部
这样可以用一条指令让某个端口的一位或多位直接置0或1而无需知道它原来的值。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-04-26
展开全部
说了半天!你的疑问是什么?
更多追问追答
追问
为什么对(GPIOx_BSRR)和(GPIOx_BRR)这两个寄存器赋值就能使IO口输出1和0?
追答
回复 陡变吧FTC :因为BSRR低16位功能和BRR低16位功能是一样的,数据手册写的有!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式