请选择 进入手机版 | 继续访问电脑版

硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1953|回复: 3
收起左侧

[GPIO] GPIO寄存器ODR、BSRR和BRR

[复制链接]

54

主题

126

回帖

288

积分

高级会员

积分
288
发表于 2021-9-2 16:05:42 | 显示全部楼层 |阅读模式
HAL函数配置一个IO输出高低电平,配置的寄存器是BSRR和BRR,ODR寄存器也可以实现这个功能,为什么不用ODR?这有什么区别吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
发表于 2021-9-3 09:29:44 | 显示全部楼层
ODR如下要修改某个引脚需要读 - 修改 - 写这种繁琐方式。

使用BRR寄存器就没有这种烦恼了,支持原子操作。

评分

参与人数 1金币 +1 收起 理由
1122335566 + 1 很给力!

查看全部评分

回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2022-8-10 00:15:58 | 显示全部楼层
eric2013 发表于 2021-9-3 09:29
ODR如下要修改某个引脚需要读 - 修改 - 写这种繁琐方式。

使用BRR寄存器就没有这种烦恼了,支持原子操作 ...

直接通过地址修改BSRR,debug时发现直接写高16位没有用,低16位可以写,大佬知道什么原因吗?我的代码很简单,如图
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2022-8-10 00:30:19 | 显示全部楼层
iricsh 发表于 2022-8-10 00:15
直接通过地址修改BSRR,debug时发现直接写高16位没有用,低16位可以写,大佬知道什么原因吗?我的代码很 ...

debug时通过keil和jlink回读BSRR,然后回读到的值都是0,实际上已经写入了,再读一遍RM我悟了
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-3-29 19:57 , Processed in 0.257607 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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