找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4284|回复: 1
收起左侧

STM32 MPU6050获取加速度角速度代码

[复制链接]
ID:451633 发表于 2018-12-27 14:06 | 显示全部楼层 |阅读模式
MPU6050三轴陀螺仪通过IIC读取获取角速度及加速度代码

单片机源程序如下:
  1. //连接方式 :请参考interface.h文件
  2. //部份源码来源网络--请试用24小时后删除
  3. #include "stm32f10x.h"
  4. #include "interface.h"
  5. #include "LCD1602.h"
  6. #include "IRCtrol.h"
  7. #include "motor.h"
  8. #include "UltrasonicCtrol.h"
  9. #include "redvoid.h"
  10. #include "Usart_Interrupt.h"
  11. #include "stm32f10x_i2c.h"
  12. #include "MPU_IIC.h"
  13. #include "uart.h"
  14. #include "usart.h"

  15. u8 pBuffer;
  16. u8* ppBuffer;
  17. s16 AccelGyro[7]={0};

  18. unsigned char  cmd_flag = 0;
  19. unsigned char testbuf[5]="abcdf";

  20. //全局变量定义
  21. unsigned int speed_count=0;//占空比计数器 50次一周期
  22. char front_left_speed_duty=SPEED_DUTY;
  23. char front_right_speed_duty=SPEED_DUTY;
  24. char behind_left_speed_duty=SPEED_DUTY;
  25. char behind_right_speed_duty=SPEED_DUTY;

  26. unsigned char tick_5ms = 0;//5ms计数器,作为主函数的基本周期
  27. unsigned char tick_1ms = 0;//1ms计数器,作为电机的基本计数器
  28. unsigned char tick_200ms = 0;//刷新显示

  29. char ctrl_comm = COMM_STOP;//控制指令
  30. char ctrl_comm_last = COMM_STOP;//上一次的指令
  31. unsigned char continue_time=0;


  32. int main(void)
  33. {       
  34.         delay_init();
  35.         USART1Conf(115200);
  36. //        printf("MPU6050 test1--->\n");
  37.   I2C_MPU6050_Init();
  38. //        printf("MPU6050 test2--->\n");
  39.         MPU6050_IniTIalize();
  40. //        printf("MPU6050 test3--->\n");
  41.         while(1)
  42.         {
  43.                 //MPU6050_I2C_ByteWrite(SlaveAdress,pBuffer,0x68);
  44.                 //MPU6050_I2C_ByteWrite(u8 slaveAddr, u8 pBuffer, u8 writeAddr)
  45.                 //MPU6050_I2C_BufferRead(SlaveAdress,ppBuffer,0x68,8);//NumByteToRead?
  46.                 //MPU6050_I2C_BufferRead(u8 slaveAddr, u8* pBuffer, u8 readAddr, u16 NumByteToRead)
  47.                 MPU6050_GetRawAccelGyro(AccelGyro);
  48.                
  49.                 printf("MPU6050 test3--->\r\n");
  50. //                printf("ACC_X = %10.5d\r\n",AccelGyro[0]);
  51. //                printf("ACC_Y = %10.5d\r\n",AccelGyro[1]);
  52. //                printf("ACC_Z = %10.5d\r\n",AccelGyro[2]);
  53. //                printf("GYRO_X = %10.5d\r\n",AccelGyro[3]);
  54. //                printf("GYRO_Y = %10.5d\r\n",AccelGyro[4]);
  55. //                printf("GYRO_Z = %10.5d\r\n",AccelGyro[5]);
  56.                
  57.                 printf("ACC_X = %d\r\n",AccelGyro[0]);
  58.                 printf("ACC_Y = %d\r\n",AccelGyro[1]);
  59.                 printf("ACC_Z = %d\r\n",AccelGyro[2]);
  60.                 printf("GYRO_X = %d\r\n",AccelGyro[3]);
  61.                 printf("GYRO_Y = %d\r\n",AccelGyro[4]);
  62.                 printf("GYRO_Z = %d\r\n",AccelGyro[5]);
  63.                 Delay_us(500000);
  64.                

  65.         }
  66. }
复制代码

所有资料51hei提供下载:
MPU6050.7z (190.45 KB, 下载次数: 83)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:603102 发表于 2019-8-23 15:52 | 显示全部楼层
AccelGyro前三个代表的是xyz轴上的加速度吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表