mirror of
https://gitee.com/lzc56/MiaoUI.git
synced 2025-07-18 17:52:09 +00:00
240 lines
5.8 KiB
C
240 lines
5.8 KiB
C
![]() |
#include "mpu6050.h"
|
|||
|
#include "sys.h"
|
|||
|
#include "Tim_Tick.h"
|
|||
|
#include "bsp_usart.h"
|
|||
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ѧϰʹ<CFB0>ã<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD>;
|
|||
|
//ALIENTEK MiniSTM32F103<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//MPU6050 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>@ALIENTEK
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̳:www.openedv.com
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:2015/4/18
|
|||
|
//<2F>汾<EFBFBD><E6B1BE>V1.0
|
|||
|
//<2F><>Ȩ<EFBFBD><C8A8><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD><D8BE><EFBFBD>
|
|||
|
//Copyright(C) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿƼ<D3BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾ 2009-2019
|
|||
|
//All rights reserved
|
|||
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|||
|
//<2F><>ʼ<EFBFBD><CABC>MPU6050
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:0,<2C>ɹ<EFBFBD>
|
|||
|
// <20><><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
u8 MPU_Init(void)
|
|||
|
{
|
|||
|
u8 res;
|
|||
|
MPU_IIC_Init();//<2F><>ʼ<EFBFBD><CABC>IIC<49><43><EFBFBD><EFBFBD>
|
|||
|
MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X80); //<2F><>λMPU6050
|
|||
|
Tims_delay_ms(100);
|
|||
|
MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X00); //<2F><><EFBFBD><EFBFBD>MPU6050
|
|||
|
MPU_Set_Gyro_Fsr(3); //<2F><><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD><C7B4><EFBFBD><EFBFBD><EFBFBD>,<2C><>2000dps
|
|||
|
MPU_Set_Accel_Fsr(0); //<2F><><EFBFBD>ٶȴ<D9B6><C8B4><EFBFBD><EFBFBD><EFBFBD>,<2C><>2g
|
|||
|
MPU_Set_Rate(50); //<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD>50Hz
|
|||
|
MPU_Write_Byte(MPU_INT_EN_REG,0X00); //<2F>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
MPU_Write_Byte(MPU_USER_CTRL_REG,0X00); //I2C<32><43>ģʽ<C4A3>ر<EFBFBD>
|
|||
|
MPU_Write_Byte(MPU_FIFO_EN_REG,0X00); //<2F>ر<EFBFBD>FIFO
|
|||
|
MPU_Write_Byte(MPU_INTBP_CFG_REG,0X80); //INT<4E><54><EFBFBD>ŵ͵<C5B5>ƽ<EFBFBD><C6BD>Ч
|
|||
|
res=MPU_Read_Byte(MPU_DEVICE_ID_REG);
|
|||
|
if(res==MPU_ADDR)//<2F><><EFBFBD><EFBFBD>ID<49><44>ȷ
|
|||
|
{
|
|||
|
MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X01); //<2F><><EFBFBD><EFBFBD>CLKSEL,PLL X<><58>Ϊ<EFBFBD>ο<EFBFBD>
|
|||
|
MPU_Write_Byte(MPU_PWR_MGMT2_REG,0X00); //<2F><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
MPU_Set_Rate(50); //<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD>Ϊ50Hz
|
|||
|
}else return 1;
|
|||
|
return 0;
|
|||
|
}
|
|||
|
//<2F><><EFBFBD><EFBFBD>MPU6050<35><30><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD><C7B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̷<EFBFBD>Χ
|
|||
|
//fsr:0,<2C><>250dps;1,<2C><>500dps;2,<2C><>1000dps;3,<2C><>2000dps
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:0,<2C><><EFBFBD>óɹ<C3B3>
|
|||
|
// <20><><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
|||
|
u8 MPU_Set_Gyro_Fsr(u8 fsr)
|
|||
|
{
|
|||
|
return MPU_Write_Byte(MPU_GYRO_CFG_REG,fsr<<3);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̷<EFBFBD>Χ
|
|||
|
}
|
|||
|
//<2F><><EFBFBD><EFBFBD>MPU6050<35><30><EFBFBD>ٶȴ<D9B6><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̷<EFBFBD>Χ
|
|||
|
//fsr:0,<2C><>2g;1,<2C><>4g;2,<2C><>8g;3,<2C><>16g
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:0,<2C><><EFBFBD>óɹ<C3B3>
|
|||
|
// <20><><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
|||
|
u8 MPU_Set_Accel_Fsr(u8 fsr)
|
|||
|
{
|
|||
|
return MPU_Write_Byte(MPU_ACCEL_CFG_REG,fsr<<3);//<2F><><EFBFBD>ü<EFBFBD><C3BC>ٶȴ<D9B6><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̷<EFBFBD>Χ
|
|||
|
}
|
|||
|
//<2F><><EFBFBD><EFBFBD>MPU6050<35><30><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ͨ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
|
|||
|
//lpf:<3A><><EFBFBD>ֵ<EFBFBD>ͨ<EFBFBD>˲<EFBFBD>Ƶ<EFBFBD><C6B5>(Hz)
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:0,<2C><><EFBFBD>óɹ<C3B3>
|
|||
|
// <20><><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
|||
|
u8 MPU_Set_LPF(u16 lpf)
|
|||
|
{
|
|||
|
u8 data=0;
|
|||
|
if(lpf>=188)data=1;
|
|||
|
else if(lpf>=98)data=2;
|
|||
|
else if(lpf>=42)data=3;
|
|||
|
else if(lpf>=20)data=4;
|
|||
|
else if(lpf>=10)data=5;
|
|||
|
else data=6;
|
|||
|
return MPU_Write_Byte(MPU_CFG_REG,data);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ͨ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
|
|||
|
}
|
|||
|
//<2F><><EFBFBD><EFBFBD>MPU6050<35>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD>(<28>ٶ<EFBFBD>Fs=1KHz)
|
|||
|
//rate:4~1000(Hz)
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:0,<2C><><EFBFBD>óɹ<C3B3>
|
|||
|
// <20><><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
|||
|
u8 MPU_Set_Rate(u16 rate)
|
|||
|
{
|
|||
|
u8 data;
|
|||
|
if(rate>1000)rate=1000;
|
|||
|
if(rate<4)rate=4;
|
|||
|
data=1000/rate-1;
|
|||
|
data=MPU_Write_Byte(MPU_SAMPLE_RATE_REG,data); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ͨ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
|
|||
|
return MPU_Set_LPF(rate/2); //<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>LPFΪ<46><CEAA><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>һ<EFBFBD><D2BB>
|
|||
|
}
|
|||
|
|
|||
|
//<2F>õ<EFBFBD><C3B5>¶<EFBFBD>ֵ
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:<3A>¶<EFBFBD>ֵ(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>100<30><30>)
|
|||
|
short MPU_Get_Temperature(void)
|
|||
|
{
|
|||
|
u8 buf[2];
|
|||
|
short raw;
|
|||
|
float temp;
|
|||
|
MPU_Read_Len(MPU_ADDR,MPU_TEMP_OUTH_REG,2,buf);
|
|||
|
raw=((u16)buf[0]<<8)|buf[1];
|
|||
|
temp=36.53+((double)raw)/340;
|
|||
|
return temp*100;;
|
|||
|
}
|
|||
|
//<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ(ԭʼֵ)
|
|||
|
//gx,gy,gz:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x,y,z<><7A><EFBFBD><EFBFBD>ԭʼ<D4AD><CABC><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:0,<2C>ɹ<EFBFBD>
|
|||
|
// <20><><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
u8 MPU_Get_Gyroscope(short *gx,short *gy,short *gz)
|
|||
|
{
|
|||
|
u8 buf[6],res;
|
|||
|
res=MPU_Read_Len(MPU_ADDR,MPU_GYRO_XOUTH_REG,6,buf);
|
|||
|
if(res==0)
|
|||
|
{
|
|||
|
*gx=((u16)buf[0]<<8)|buf[1];
|
|||
|
*gy=((u16)buf[2]<<8)|buf[3];
|
|||
|
*gz=((u16)buf[4]<<8)|buf[5];
|
|||
|
}
|
|||
|
return res;;
|
|||
|
}
|
|||
|
//<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ٶ<EFBFBD>ֵ(ԭʼֵ)
|
|||
|
//gx,gy,gz:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x,y,z<><7A><EFBFBD><EFBFBD>ԭʼ<D4AD><CABC><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:0,<2C>ɹ<EFBFBD>
|
|||
|
// <20><><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
u8 MPU_Get_Accelerometer(short *ax,short *ay,short *az)
|
|||
|
{
|
|||
|
u8 buf[6],res;
|
|||
|
res=MPU_Read_Len(MPU_ADDR,MPU_ACCEL_XOUTH_REG,6,buf);
|
|||
|
if(res==0)
|
|||
|
{
|
|||
|
*ax=((u16)buf[0]<<8)|buf[1];
|
|||
|
*ay=((u16)buf[2]<<8)|buf[3];
|
|||
|
*az=((u16)buf[4]<<8)|buf[5];
|
|||
|
}
|
|||
|
return res;;
|
|||
|
}
|
|||
|
//IIC<49><43><EFBFBD><EFBFBD>д
|
|||
|
//addr:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
|||
|
//reg:<3A>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ
|
|||
|
//len:д<>볤<EFBFBD><EBB3A4>
|
|||
|
//buf:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:0,<2C><><EFBFBD><EFBFBD>
|
|||
|
// <20><><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
u8 MPU_Write_Len(u8 addr,u8 reg,u8 len,u8 *buf)
|
|||
|
{
|
|||
|
u8 i;
|
|||
|
MPU_IIC_Start();
|
|||
|
MPU_IIC_Send_Byte((addr<<1)|0);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ+д<><D0B4><EFBFBD><EFBFBD>
|
|||
|
if(MPU_IIC_Wait_Ack()) //<2F>ȴ<EFBFBD>Ӧ<EFBFBD><D3A6>
|
|||
|
{
|
|||
|
MPU_IIC_Stop();
|
|||
|
return 1;
|
|||
|
}
|
|||
|
MPU_IIC_Send_Byte(reg); //д<>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ
|
|||
|
MPU_IIC_Wait_Ack(); //<2F>ȴ<EFBFBD>Ӧ<EFBFBD><D3A6>
|
|||
|
for(i=0;i<len;i++)
|
|||
|
{
|
|||
|
MPU_IIC_Send_Byte(buf[i]); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if(MPU_IIC_Wait_Ack()) //<2F>ȴ<EFBFBD>ACK
|
|||
|
{
|
|||
|
MPU_IIC_Stop();
|
|||
|
return 1;
|
|||
|
}
|
|||
|
}
|
|||
|
MPU_IIC_Stop();
|
|||
|
return 0;
|
|||
|
}
|
|||
|
//IIC<49><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//addr:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
|||
|
//reg:Ҫ<><D2AA>ȡ<EFBFBD>ļĴ<C4BC><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ
|
|||
|
//len:Ҫ<><D2AA>ȡ<EFBFBD>ij<EFBFBD><C4B3><EFBFBD>
|
|||
|
//buf:<3A><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢<DDB4><E6B4A2>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:0,<2C><><EFBFBD><EFBFBD>
|
|||
|
// <20><><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
u8 MPU_Read_Len(u8 addr,u8 reg,u8 len,u8 *buf)
|
|||
|
{
|
|||
|
MPU_IIC_Start();
|
|||
|
MPU_IIC_Send_Byte((addr<<1)|0);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ+д<><D0B4><EFBFBD><EFBFBD>
|
|||
|
if(MPU_IIC_Wait_Ack()) //<2F>ȴ<EFBFBD>Ӧ<EFBFBD><D3A6>
|
|||
|
{
|
|||
|
MPU_IIC_Stop();
|
|||
|
return 1;
|
|||
|
}
|
|||
|
MPU_IIC_Send_Byte(reg); //д<>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ
|
|||
|
MPU_IIC_Wait_Ack(); //<2F>ȴ<EFBFBD>Ӧ<EFBFBD><D3A6>
|
|||
|
MPU_IIC_Start();
|
|||
|
MPU_IIC_Send_Byte((addr<<1)|1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ+<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
MPU_IIC_Wait_Ack(); //<2F>ȴ<EFBFBD>Ӧ<EFBFBD><D3A6>
|
|||
|
while(len)
|
|||
|
{
|
|||
|
if(len==1)*buf=MPU_IIC_Read_Byte(0);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>nACK
|
|||
|
else *buf=MPU_IIC_Read_Byte(1); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ACK
|
|||
|
len--;
|
|||
|
buf++;
|
|||
|
}
|
|||
|
MPU_IIC_Stop(); //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
|
|||
|
return 0;
|
|||
|
}
|
|||
|
//IICдһ<D0B4><D2BB><EFBFBD>ֽ<EFBFBD>
|
|||
|
//reg:<3A>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ
|
|||
|
//data:<3A><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:0,<2C><><EFBFBD><EFBFBD>
|
|||
|
// <20><><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
u8 MPU_Write_Byte(u8 reg,u8 data)
|
|||
|
{
|
|||
|
MPU_IIC_Start();
|
|||
|
MPU_IIC_Send_Byte((MPU_ADDR<<1)|0);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ+д<><D0B4><EFBFBD><EFBFBD>
|
|||
|
if(MPU_IIC_Wait_Ack()) //<2F>ȴ<EFBFBD>Ӧ<EFBFBD><D3A6>
|
|||
|
{
|
|||
|
MPU_IIC_Stop();
|
|||
|
return 1;
|
|||
|
}
|
|||
|
MPU_IIC_Send_Byte(reg); //д<>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ
|
|||
|
MPU_IIC_Wait_Ack(); //<2F>ȴ<EFBFBD>Ӧ<EFBFBD><D3A6>
|
|||
|
MPU_IIC_Send_Byte(data);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if(MPU_IIC_Wait_Ack()) //<2F>ȴ<EFBFBD>ACK
|
|||
|
{
|
|||
|
MPU_IIC_Stop();
|
|||
|
return 1;
|
|||
|
}
|
|||
|
MPU_IIC_Stop();
|
|||
|
return 0;
|
|||
|
}
|
|||
|
//IIC<49><43>һ<EFBFBD><D2BB><EFBFBD>ֽ<EFBFBD>
|
|||
|
//reg:<3A>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
u8 MPU_Read_Byte(u8 reg)
|
|||
|
{
|
|||
|
u8 res;
|
|||
|
MPU_IIC_Start();
|
|||
|
MPU_IIC_Send_Byte((MPU_ADDR<<1)|0);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ+д<><D0B4><EFBFBD><EFBFBD>
|
|||
|
MPU_IIC_Wait_Ack(); //<2F>ȴ<EFBFBD>Ӧ<EFBFBD><D3A6>
|
|||
|
MPU_IIC_Send_Byte(reg); //д<>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ
|
|||
|
MPU_IIC_Wait_Ack(); //<2F>ȴ<EFBFBD>Ӧ<EFBFBD><D3A6>
|
|||
|
MPU_IIC_Start();
|
|||
|
MPU_IIC_Send_Byte((MPU_ADDR<<1)|1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ+<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
MPU_IIC_Wait_Ack(); //<2F>ȴ<EFBFBD>Ӧ<EFBFBD><D3A6>
|
|||
|
res=MPU_IIC_Read_Byte(0);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>nACK
|
|||
|
MPU_IIC_Stop(); //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
|
|||
|
return res;
|
|||
|
}
|
|||
|
|
|||
|
|