stm32F769 IIC与WM894通讯,读ID异常

2019-07-20 02:23发布

本帖最后由 allance1031 于 2019-4-24 12:24 编辑

stm32F769 IIC与WM894通讯,读ID(16位)异常,读高八位第一个字节正常0x89,但是读第二个字节始终为0x00,代码如下:
uint8_t WM8994_Read(uint16_t Chip_ADD,uint16_t Reg_Add,uint16_t *Read_Data)
{
uint8_t ak;
uint8_t Reg_Add_H,Reg_Add_L;
uint8_t Temp_Chip_ADD;
Reg_Add_H =        (uint8_t)(Reg_Add>>8);
Reg_Add_L =        (uint8_t)(Reg_Add);        
//Temp_Chip_ADD = Chip_ADD<<1;
Temp_Chip_ADD = Chip_ADD&0xFE;
flag=Temp_Chip_ADD;

IIC_Start();

IIC_Send_Byte(Temp_Chip_ADD|0x00);

ak=IIC_Wait_Ack();
  
if(ak==1)
{
return KO;
}

IIC_Send_Byte(Reg_Add_H);

ak=IIC_Wait_Ack();

if(ak==1)
{
return KO;
}

IIC_Send_Byte(Reg_Add_L);

ak=IIC_Wait_Ack();

if(ak==1)
{
return KO;
}

//IIC_Stop();

IIC_Start();

IIC_Send_Byte(Temp_Chip_ADD|0x01);

ak=IIC_Wait_Ack();

if(ak==1)
{
return KO;
}

Read_Data[0]=IIC_Read_Byte(1);        

Read_Data[1]=IIC_Read_Byte(0);        

IIC_Stop();

return OK;





















友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。