uchar IIC_receive_dat()//接受数据
{
uchar i,num;
SCL = 0;
delay1();
SDA = 1;
for(i = 0;i <= 7;i++)
{
SCL = 1;
delay1();
num = (num<<1)|SDA;
SCL = 0;
delay1();
}
return num;
}
接受程序如上,接收前已检测到从机发送的ACK信号,然后开始执行上面的接收程序,不过无法收到任何数据,从机芯片手册说的发送8bit数据,然而我把接收结果与0到255一一比较,居然没有找出收到的数据内容到底是什么,0到255没有一个数值能触发我写的条件,很迷惑,不是0,也不是0xff,这种场面真的第一次见,不知道有没有大佬知道其中的问题,谢谢
|