新手上路
- 积分
- 38
- 金钱
- 38
- 注册时间
- 2017-10-26
- 在线时间
- 3 小时
|

楼主 |
发表于 2017-11-2 18:30:18
|
显示全部楼层
你好,写指令能实现了,但是读取到的值一直不对。一直都是一个固定的数。
GY_26_WriteOneByte(0x00,0x31);//测量角度
GY_26_ReadByte(0x00,gy_buf);//从00h地址开始读取
void GY_26_ReadByte(u16 ReadAddr,u8 *buf)
{
u8 i;
IIC_Start(); //开始信号
IIC_Send_Byte(GY_WR_ADDR);//写指令
IIC_Wait_Ack();//等待应答
IIC_Send_Byte(ReadAddr);//发送地址
IIC_Wait_Ack();//等待应答
IIC_Start(); //开始信号
IIC_Send_Byte(GY_RD_ADDR);//读指令
IIC_Wait_Ack();//等待应答
for(i=0;i<8;i++)
{
if(i==7)
buf = IIC_Read_Byte(0);//最后发送非应答
else
{
buf = IIC_Read_Byte(1);//发送应答
}
}
IIC_Stop();//产生停止信号
}
这是怎么回事,能帮我解答一下吗 |
|