找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8185|回复: 7
收起左侧

STM32操作MPU6050陀螺仪的程序,分享一下!

  [复制链接]
ID:281113 发表于 2018-1-31 12:06 | 显示全部楼层 |阅读模式
之前看到的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. //ALIENTEK Mini STM32开发板范例代码3
  9. //串口实验

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

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

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

  58. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

下载:
STM32_MPU6050.rar (298.49 KB, 下载次数: 188)
回复

使用道具 举报

ID:85733 发表于 2018-11-14 15:59 | 显示全部楼层
非常好的程序,学习了,正在找呢
回复

使用道具 举报

ID:85733 发表于 2018-11-14 16:00 | 显示全部楼层
非常好的程序,正在找呢,学习了
回复

使用道具 举报

ID:426644 发表于 2018-11-14 20:33 | 显示全部楼层
不错不错
回复

使用道具 举报

ID:371542 发表于 2018-11-17 17:39 | 显示全部楼层
陀螺仪好像接不到数据,怎么办呢?
回复

使用道具 举报

ID:437810 发表于 2018-12-2 18:19 | 显示全部楼层
非常好的程序,学习了,正在找呢
回复

使用道具 举报

ID:573483 发表于 2019-8-5 11:40 | 显示全部楼层
表示很需要
回复

使用道具 举报

ID:932417 发表于 2021-7-9 08:54 | 显示全部楼层
这个STM32F103能用吗,谢谢
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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