标题: stm32 mpu6050测试代码 [打印本页]

作者: blackantywj123    时间: 2018-11-17 22:35
标题: stm32 mpu6050测试代码

stm32 mpu6050测试代码 陀螺仪数据接受有问题 还要大佬们再调调看


单片机源程序如下:

  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "key.h"
  5. #include "usart.h"
  6. #include "MPU6050.h"
  7. #include "HMC5883L.h"


  8. int16_t ax, ay, az;       
  9. int16_t gx, gy, gz;
  10. int16_t hx, hy, hz;
  11. int16_t hmcvalue[3],XA;

  12. u8        hbuffer[6];
  13. u8         abuffer[6];
  14. float sum=0,sum1=0,sum2=0;       

  15. int main(void)
  16. {
  17.         u8 t;
  18.         u8 len;       
  19.         u16 times=0;  
  20.         u8 X[6],A[10];
  21.         u8 AX[6],AY[6],AZ[6],HX[6],HY[6],HZ[6];  //测试用
  22.         float angle,direction;       
  23.         SystemInit();//系统时钟等初始化
  24.         delay_init(72);             //延时初始化
  25.         NVIC_Configuration();//设置NVIC中断分组2:2位抢占优先级,2位响应优先级
  26.         IIC_Init();         //初始化I2C接口
  27.         uart_init(115200);//串口初始化为9600
  28.         LED_Init();         //LED端口初始化115200
  29.         MPU6050_initialize();
  30.         HMC5883L_SetUp();
  31.         delay_ms(50);
  32.         HMC5883L_SetUp();
  33.         IICreadBytes(devAddr, MPU6050_RA_ACCEL_XOUT_H, 2, abuffer);
  34.         XA=(((int16_t)abuffer[0]) << 8) | abuffer[1];
  35.         while(1)
  36.         {
  37.                 IICreadBytes(devAddr, MPU6050_RA_ACCEL_XOUT_H, 6, abuffer);
  38.                 ax=(((int16_t)abuffer[0]) << 8) | abuffer[1];
  39.                 ay=(((int16_t)abuffer[2]) << 8) | abuffer[3];
  40.                 az=(((int16_t)abuffer[4]) << 8) | abuffer[5];
  41.                 sum=(39.2/65536.0)*(ax-XA);
  42.                 sum1=ax*0.0025;
  43.                 sum2+=sum1;
  44.                 IICreadBytes(HMC58X3_ADDR,HMC58X3_R_XM,6,hbuffer);
  45.                 hx=(((int16_t)hbuffer[0]) << 8) | hbuffer[1];
  46.                 hz=(((int16_t)hbuffer[2]) << 8) | hbuffer[3];
  47.                 hy=(((int16_t)hbuffer[4]) << 8) | hbuffer[5];
  48.                
  49. //                acc_x= GetData(ACCEL_XOUT_H);
  50. //                acc_y= GetData(ACCEL_YOUT_H);
  51. //                acc_z= GetData(ACCEL_ZOUT_H);
  52. //                gy_x= GetData(GYRO_XOUT_H);
  53. //                gy_y= GetData(GYRO_YOUT_H);
  54. //                gy_z= GetData(GYRO_ZOUT_H);

  55.                 printf("ACC:  X=%d   Y=%d   Z=%d  \n",ax,ay,az);
  56.                 printf("GYRO:  X=%d   Y=%d   Z=%d  \n",hx,hy,hz);
  57.                 delay_ms(500);   
  58.         }         

  59. }
复制代码

所有资料51hei提供下载:

MPU6050.rar (302.78 KB, 下载次数: 7)










欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1