初始化引脚为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的模式,保护已经解除了,谢谢要先清除 SYS->GPA_MFPH = (SYS->GPA_MFPH & ~(SYS_GPA_MFPH_PA12MFP_Msk | SYS_GPA_MFPH_PA13MFP_Msk)):
按IO那样配置下不行么 与0做或运算,结果不变。应该用与运算把对应位全清0,SYS->PA_H_MFP &=~(SYS_PA_H_MFP_PA12_MFP_Msk | SYS_PA_H_MFP_PA13_MFP_Msk);
普通IO指的是开漏输出么? 在配置IO为正常的输入出就行。 之前用过stm32的时候,就是清除寄存器的配置。
这个iic为什么还需要切换呢? 如果不操作iic,就是普通的io操作。 就是清除寄存器的配置
页:
[1]