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的库是正点原子的库,思考了好几天都没有找到解决办法,谢谢大家了


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
82年的矿泉水
1楼-- · 2019-07-21 07:29
 精彩回答 2  元偷偷看……
82年的矿泉水
2楼-- · 2019-07-21 09:51
 精彩回答 2  元偷偷看……
MXA
3楼-- · 2019-07-21 13:10
先利用自带的软件试试6050是不是能正常工作,不能的话利用6050资料自带的软件将模块重置一下试试
1599064432
4楼-- · 2019-07-21 17:13
 精彩回答 2  元偷偷看……
82年的矿泉水
5楼-- · 2019-07-21 20:58
MXA 发表于 2019-5-5 01:01
先利用自带的软件试试6050是不是能正常工作,不能的话利用6050资料自带的软件将模块重置一下试试

MPU接在我的精英上面可以正常工作,而且我在这次实验里面MPU-Init函数也可以正常返回0,但我用iic读器件地址输出的是FF...如果初始化没问题我现在找不到问题在哪了
82年的矿泉水
6楼-- · 2019-07-22 02:57
 精彩回答 2  元偷偷看……

一周热门 更多>