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

[复制链接]
1294|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);


kiwis66 发表于 2022-9-4 20:29 | 显示全部楼层
普通IO指的是开漏输出么?
mattlincoln 发表于 2022-11-10 17:32 | 显示全部楼层
在配置IO为正常的输入出就行。              
backlugin 发表于 2022-11-10 17:42 | 显示全部楼层
之前用过stm32的时候,就是清除寄存器的配置。
jkl21 发表于 2022-11-10 18:00 | 显示全部楼层
这个iic为什么还需要切换呢?              
tifmill 发表于 2022-11-10 18:33 | 显示全部楼层
如果不操作iic,就是普通的io操作。
Jacquetry 发表于 2022-11-11 23:28 | 显示全部楼层
就是清除寄存器的配置
您需要登录后才可以回帖 登录 | 注册

本版积分规则

837

主题

4432

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部