我想用IO模拟IIC设置摄像头参数,发现,SDA先设置为输出之后,再设置为输入不起作用,用的是PE15,谢谢各位帮我看看是什么问题。
void SCCB_SID_OUT(void)//设置SCCB_SID为输出
{
*pPORTE_FER &= 0x7fff;
*pPORTE_INEN &= 0x7fff; // PE15为输出
*pPORTE_DIR_SET |= 0x8000; // PE15输出使能
ssync();
}
void SCCB_SID_IN(void)//设置SCCB_SID为输入
{
*pPORTE_FER &= 0x7fff;
*pPORTE_INEN |= 0x8000; // PE15为输入
*pPORTE_DIR_SET &= 0x7fff; // PE15输入使能
ssync();
}
我测试了一下,直接设置为输入,然后读按键那样读是可以正确读的,下面的buzz为蜂鸣器,有响 (SDA_NUM[0] 为 PE15)
if(!(*pPORTE & SDA_NUM[0]))
但是先设置为输入,后面再设置为输入,蜂鸣器就不响了,读出来的IO状态一直都为1了,但是IO示波器看是有变低的,想不明白!