野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13050|回复: 2

问一下这个BSRR寄存器里面的BSx和BRx之间的置位复位关系!?

[复制链接]
发表于 2017-2-19 11:02:57 | 显示全部楼层 |阅读模式
file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\76530067\QQ\WinTemp\RichOle\UJR202Y3M@YYBC]JKKO9]FD.pngfile:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\76530067\QQ\WinTemp\RichOle\UJR202Y3M@YYBC]JKKO9]FD.png

寄存器说明

寄存器说明

如果我要对某一组GPIO端口的第一引脚操作,
我先对BS1写1,这个时候,ODR1就被写了1,同时这个引脚输出高电平,
这时我要是再想给ODR1写0的话,按照教程就是给BR1写1,但之前已经给BS1写1了,
这时给BR1写1以后,BS1和BR1都是1,那ODR1是被写1还是被写0呢。


如果参照  “注意: 如果同时对 BSx 和 BRx 置位,则 BSx 的优先级更高”

那么ODR1也还是1,写不成0。

教程里面,对引脚输出的控制,
都是直接对BS1写1,把ODR1置位(写1),
或直接对BR1写1,把ODR1复位(写0),
并没有在这两个操作之前,把BS1或BR1先复位(写0),
并且程序运行和硬件实现也都没有问题。

请问,该如何解释呢?  请大神指教!

我的猜测1:在对BS1 或BR1 置位(写1)的时候,STM32会自动将BS1或BR1复位,那句 “注意: 如果同时对 BSx 和 BRx 置位,则 BSx 的优先级更高”的意思是用一条命令同时把BS1和BR1置位的时候,才体现BS1的优先级更高。



回复

使用道具 举报

发表于 2017-2-20 08:26:22 | 显示全部楼层
假设你有一个女友,还有一个备胎,你可以答应跟女友一起过情人节,也可以答应跟备胎一起过情人节;“注意:如果你是同时答应的她们俩,则你会先跟女友过情人节”;那么为什么火哥为什么不这么干呢?因为他是老司机
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-20 14:26:11 | 显示全部楼层
liutao 发表于 2017-2-20 08:26
假设你有一个女友,还有一个备胎,你可以答应跟女友一起过情人节,也可以答应跟备胎一起过情人节;“注意: ...

大哥 ,能好好对待拥有疑问的人不
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-9-29 21:33 , Processed in 0.033430 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表