已回答假定已回答

大神请指教

darrinking 在 2018-4-27 詢問的問題

哥们,能麻烦你看一下我是错哪了吗?调了好几天了一直都没调通!

我用逻辑分析仪看看了,主机写入的数据没问题,但是从机接受完数据后显示不应答。

我的主函数程序是这样的,读出来的数据全是FF。请指教!

     I2C_WriteByte(0x00,0x05);

 

 

     power1=I2C_ReadByte(0x14);

     power2=I2C_ReadByte(0x15);

     power3=I2C_ReadByte(0x1E);

     power4=I2C_ReadByte(0x1F);

     power5=I2C_ReadByte(0x28);

     power6=I2C_ReadByte(0x29);

     status=I2C_ReadByte(0x02);

 

 

      printf("%x  %x  %x  %x  %x  %x %x\n ",power1,power2,power3,power4,power5,power6,status);          

 

 

 

/I2C发送数据/

u8 I2C_WriteByte(u8 ADDR,u8 DAT)

{

     I2C_Start();

     I2C_send_byte(ADDRESS+0);

     if(Test_ACK()==1)   //¼ì²â´Ó»úÓ¦´ð

     {

          return(0);     

     }     

     I2C_send_byte(ADDR);

     if(Test_ACK()==1)

     {

          return(0);     

     }     

     I2C_send_byte(DAT);

     if(Test_ACK()==1)

     {

          return(0);     

     }     

     I2C_Stop();     

     return(1);

}

 

//IIC读数据//

u8 I2C_ReadByte(u8 ADDR)         

{

     u8 dat;

     I2C_Start();

     I2C_send_byte(ADDRESS+0);

     if(Test_ACK()==1)

     {

          return(0);

     }

     I2C_send_byte(ADDR);

     if(Test_ACK()==1)

     {

          return(0);     

     }

     I2C_Start();

     I2C_send_byte(ADDRESS+1);

     if(Test_ACK()==1)

     {

          return(0);     

     }

     dat=I2C_read_byte();

     Master_ACK(0);

     I2C_Stop();

     return(dat);

}

 

結果