打印
[技术问答]

初始化引脚为I2C功能后,怎么把对应的引脚再恢复为普通io?

[复制链接]
1014|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
flycamelaaa|  楼主 | 2022-9-2 17:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
SYS->PA_H_MFP |= (SYS_PA_H_MFP_PA12_MFP_I2C0_SDA | SYS_PA_H_MFP_PA13_MFP_I2C0_SCL );
设置为I2C以后,重新设置为普通引脚
SYS->PA_H_MFP |= (SYS_PA_H_MFP_PA12_MFP_GPA12 | SYS_PA_H_MFP_PA13_MFP_GPA13 );
但是没有任何效果,寄存器还是保持为I2C的模式,保护已经解除了,谢谢

使用特权

评论回复
沙发
et009| | 2022-9-2 19:14 | 只看该作者
要先清除 SYS->GPA_MFPH = (SYS->GPA_MFPH & ~(SYS_GPA_MFPH_PA12MFP_Msk | SYS_GPA_MFPH_PA13MFP_Msk)):

使用特权

评论回复
板凳
sadicy| | 2022-9-3 14:37 | 只看该作者
按IO那样配置下不行么

使用特权

评论回复
地板
laocuo1142| | 2022-9-3 17:00 | 只看该作者
与0做或运算,结果不变。应该用与运算把对应位全清0,
SYS->PA_H_MFP   &=
~(SYS_PA_H_MFP_PA12_MFP_Msk | SYS_PA_H_MFP_PA13_MFP_Msk);


使用特权

评论回复
5
kiwis66| | 2022-9-4 20:29 | 只看该作者
普通IO指的是开漏输出么?

使用特权

评论回复
6
mattlincoln| | 2022-11-10 17:32 | 只看该作者
在配置IO为正常的输入出就行。              

使用特权

评论回复
7
backlugin| | 2022-11-10 17:42 | 只看该作者
之前用过stm32的时候,就是清除寄存器的配置。

使用特权

评论回复
8
jkl21| | 2022-11-10 18:00 | 只看该作者
这个iic为什么还需要切换呢?              

使用特权

评论回复
9
tifmill| | 2022-11-10 18:33 | 只看该作者
如果不操作iic,就是普通的io操作。

使用特权

评论回复
10
Jacquetry| | 2022-11-11 23:28 | 只看该作者
就是清除寄存器的配置

使用特权

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

本版积分规则

667

主题

2844

帖子

0

粉丝