mpu6050读取数据一直没有变化

2019-07-21 01:58发布

学习的是精英STM32F103ZET6的mpu6050例程 想要移植到STM32F103C8上边 使用的是HAL库
iic的库是自己写的 可以保证正确性
正点原子的例程移植到HAL库的F103C8十分麻烦 于是打算自己用iic库函数读取数据
在CUBEMX生成文件并初始化mpu6050完成之后
我将对应的vcc gnd scl sda连接到stm32f103c8上边 AD0管脚没有接
最简单的我先读取了MPU6050陀螺仪储存数据的寄存器里面的值并用串口发送到电脑
电脑接受的x轴 y轴 z轴的数据一直都是18 18 02没有变化
在论坛里面找了很久试了很多办法都没有得到解决
希望用过这个模块的同学能帮我看看哪里出现了问题 感谢

int main(void)
{
  HAL_Init();
  SystemClock_Config();
  MX_GPIO_Init();
  MX_I2C1_Init();

  MX_USART1_UART_Init();
  uint8_t abc[3]={0,1,2};
MPU_Init();
  


float pitch,roll,yaw;  
short aacx,aacy,aacz;
short gyrox,gyroy,gyroz;
short temp;  
uint8_t gyro[3]={gyrox,gyroy,gyroz};
uint8_t accel[3]={aacx,aacy,aacz};
u8 temp0[1]={temp};
u8 buff[6];



  while (1)
  {
    i2c_read_buf(buff,1,0x43);
  i2c_read_buf(buff+1,1,0x44);
  i2c_read_buf(buff+2,1,0x45);
  i2c_read_buf(buff+3,1,0x46);
  i2c_read_buf(buff+4,1,0x47);
  i2c_read_buf(buff+5,1,0x48);
  gyrox=((uint16_t)buff[0]<<8)|buff[1];  
  gyroy=((uint16_t)buff[2]<<8)|buff[3];  
  gyroz=((uint16_t)buff[4]<<8)|buff[5];
    if(MPU_Init()==0)
  {HAL_UART_Transmit(&huart1,gyro,3,100);}
  HAL_Delay(200);


}
这里是主函数,MPU的库是正点原子的库,思考了好几天都没有找到解决办法,谢谢大家了


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