注册会员
- 积分
- 51
- 威望
- 25
- 贡献
- 16
- 兑换币
- 15
- 注册时间
- 2017-4-21
- 在线时间
- 5 小时
- 毕业学校
- 永嘉中学
|
//读一字节
u8 IIC_Read_Byte(unsigned char ack)
{
unsigned char i,receive=0;
SDA_IN();
for(i=0;i<8;i++ )
{
GPIO_SET(PORTA,SCL,0);
Delay(4);
GPIO_SET(PORTA,SCL,1);
receive<<=1;
if(GPIO_GET_1bit(PORTA,SDA))receive++;
Delay(4);
}
if (ack)
IIC_Ack();
else
IIC_NAck();
return receive;
}
void SDA_IN()
{
PORT_PCR_REG(PORTX[PORTA], SDA) = (0 | PORT_PCR_MUX(1) | GPI);
GPIO_PDDR_REG(GPIOx[PORTA]) &= ~(1 << SDA);
//PORT_PCR_REG(PORTX[PORTA], SDA) |= PORT_PCR_ODE_MASK;
}
读回来一直都是0xff,应答位成功读回,读取后面的东西的时候就一直是搞电平,贼蒙,求大佬们帮助一下
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|