flycamelaaa 发表于 2022-9-2 17:34

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

在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

就是清除寄存器的配置
页: [1]
查看完整版本: 初始化引脚为I2C功能后,怎么把对应的引脚再恢复为普通io?