打印

关于GD32F407 GPIO寄存器的思考

[复制链接]
635|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zyftank|  楼主 | 2025-7-27 21:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zyftank 于 2025-7-28 06:38 编辑

当我们对GPIO进行置位操作时,对应的库函数是对BOP寄存器进行了赋值,翻看用户手册里写到BOP对应的PIN位置1时,会将相对应的OCTL寄存器的PIN位置1,拉高PIN电平。

对GPIO进行位清除操作的时候,是对BC寄存器CR对应的PIN位置置1,对应的PIN位置1时,会将OCTL寄存器的位清除,拉低PIN电平。

每个操作单个逻辑在理解上没问题,但是当我对同一个PIN脚先进行置位操作,随即进行清除操作,理论上这个PIN脚对应的BOP寄存器和BC寄存器的值都会是1,那么OCTL寄存器将是置位还是清除?

实验时,对PIN脚先拉高后拉低,操作结果是没问题的。由于在读取BOP寄存器的数值并通过串口打印,好像数值跟预期不一致,不敢确定是读取了正确的BOP寄存器的数值。


大家有没有更深刻的理解,欢迎留言。

使用特权

评论回复
沙发
zyftank|  楼主 | 2025-7-27 21:27 | 只看该作者
如果OCTL捕捉的是BOP和BC寄存器位的上升沿信号,那么整个流程在逻辑上我就能想通了。

使用特权

评论回复
板凳
ShimmeringDawn| | 2025-7-28 13:34 | 只看该作者
我觉得肯定是哪里出了问题

使用特权

评论回复
地板
zyftank|  楼主 | 2025-7-28 14:21 | 只看该作者
ShimmeringDawn 发表于 2025-7-28 13:34
我觉得肯定是哪里出了问题

怎么会有这种想法呢?

使用特权

评论回复
5
mailshichao| | 2025-7-28 18:54 | 只看该作者
ShimmeringDawn 发表于 2025-7-28 13:34
我觉得肯定是哪里出了问题

我觉得你说有道理

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

23

帖子

0

粉丝