久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3638|回復: 0
收起左側

MPU6050 S9KEA128AMLK GPIO模擬程序 串口輸出

[復制鏈接]
ID:308505 發表于 2018-7-8 20:03 | 顯示全部樓層 |閱讀模式
S9KEA128AMLK串口輸出模擬程序
0.png
單片機源程序如下:
  1. #include"MPU6050.h"
  2. #include "soft_i2c.h"


  3. //寄存器讀寫函數
  4. #define MUP_WR(reg,data)    soft_i2c_write_reg(MPU6050_DEV_ADDR,reg,data)
  5. #define MUP_RD(reg)         soft_i2c_read_reg(MPU6050_DEV_ADDR,reg,IIC)



  6. #define        MPU6050_DEV_ADDR            0xD0>>1        //IIC寫入時的地址字節數據,+1為讀取

  7. //****************************************
  8. // 定義MPU6050內部地址
  9. //****************************************
  10. #define        SMPLRT_DIV                0x19        //陀螺儀采樣率,典型值:0x07(125Hz)
  11. #define        CONFIG                    0x1A        //低通濾波頻率,典型值:0x06(5Hz)
  12. #define        GYRO_CONFIG                0x1B        //陀螺儀自檢及測量范圍,典型值:0x18(不自檢,2000deg/s)
  13. #define        ACCEL_CONFIG        0x1C        //加速計自檢、測量范圍及高通濾波頻率,典型值:0x01(不自檢,2G,5Hz)
  14. #define        ACCEL_XOUT_H        0x3B
  15. #define        ACCEL_XOUT_L        0x3C
  16. #define        ACCEL_YOUT_H        0x3D
  17. #define        ACCEL_YOUT_L        0x3E
  18. #define        ACCEL_ZOUT_H        0x3F
  19. #define        ACCEL_ZOUT_L        0x40

  20. #define        GYRO_XOUT_H                0x43
  21. #define        GYRO_XOUT_L                0x44
  22. #define        GYRO_YOUT_H                0x45
  23. #define        GYRO_YOUT_L                0x46
  24. #define        GYRO_ZOUT_H                0x47
  25. #define        GYRO_ZOUT_L                0x48
  26. #define        PWR_MGMT_1                0x6B        //電源管理,典型值:0x00(正常啟用)
  27. #define        WHO_AM_I                        0x75        //IIC地址寄存器(默認數值0x68,只讀)
  28. #define        SlaveAddress            0xD0        //IIC寫入時的地址字節數據,+1為讀取



  29. int16 mpu_gyro_x,mpu_gyro_y,mpu_gyro_z;
  30. int16 mpu_acc_x,mpu_acc_y,mpu_acc_z;

  31. void main_test(void)
  32. {
  33.     InitMPU6050();

  34.     //在線調試查看mpu_gyro_x mpu_gyro_y mpu_gyro_z mpu_acc_x mpu_acc_y mpu_acc_z三個變量即可
  35.     for(;;)
  36.     {
  37.         //采集MPU6050數據
  38.         Get_Gyro();
  39.         Get_AccData();
  40.         
  41.         printf("mpu_gyro_x=%d\n",mpu_gyro_x);
  42.         printf("mpu_gyro_y=%d\n",mpu_gyro_y);
  43.         printf("mpu_gyro_z=%d\n\n",mpu_gyro_z);
  44.         
  45.         printf("mpu_acc_x=%d\n",mpu_acc_x);
  46.         printf("mpu_acc_y=%d\n",mpu_acc_y);
  47.         printf("mpu_acc_z=%d\n\n",mpu_acc_z);
  48.         
  49.         systick_delay_ms(30);//延時30ms

  50.     }
  51. }


  52. //**************************************
  53. //初始化MPU6050
  54. //**************************************
  55. void InitMPU6050(void)
  56. {
  57.     soft_i2c_init();


  58.         MUP_WR(PWR_MGMT_1, 0x00);        //解除休眠狀態
  59.         MUP_WR(SMPLRT_DIV, 0x07);
  60.         MUP_WR(CONFIG, 0x06);
  61.         MUP_WR(GYRO_CONFIG, 0x18);
  62.         MUP_WR(ACCEL_CONFIG, 0x10);
  63. }

  64. //-------------------------------------------------------------------------------------------------------------------
  65. //  @brief      獲取MPU6050加速度計數據
  66. //  @param      NULL
  67. //  @return     void
  68. //  @since      v1.0
  69. //  Sample usage:                                執行該函數后,直接查看對應的變量即可
  70. //-------------------------------------------------------------------------------------------------------------------
  71. void Get_AccData(void)
  72. {
  73.     uint8 dat[6];
  74.    
  75.     soft_i2c_read_regs(MPU6050_DEV_ADDR, ACCEL_XOUT_H, dat, 6, IIC);  
  76.     mpu_acc_x = (int16)(((uint16)dat[0]<<8 | dat[1]));
  77.     mpu_acc_y = (int16)(((uint16)dat[2]<<8 | dat[3]));
  78.     mpu_acc_z = (int16)(((uint16)dat[4]<<8 | dat[5]));
  79. }


  80. //-------------------------------------------------------------------------------------------------------------------
  81. //  @brief      獲取MPU6050陀螺儀數據
  82. //  @param      NULL
  83. //  @return     void
  84. //  @since      v1.0
  85. //  Sample usage:                                執行該函數后,直接查看對應的變量即可
  86. //-------------------------------------------------------------------------------------------------------------------
  87. void Get_Gyro(void)
  88. {
  89.     uint8 dat[6];
  90.    
  91.     soft_i2c_read_regs(MPU6050_DEV_ADDR, GYRO_XOUT_H, dat, 6, IIC);  
  92.     mpu_gyro_x = (int16)(((uint16)dat[0]<<8 | dat[1]));
  93.     mpu_gyro_y = (int16)(((uint16)dat[2]<<8 | dat[3]));
  94.     mpu_gyro_z = (int16)(((uint16)dat[4]<<8 | dat[5]));
  95. }



復制代碼

所有資料51hei提供下載:
KEA_MPU6050_App.rar (4.72 KB, 下載次數: 20)


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩在线视频免费观看 | 精品久久久久久久 | 欧美中文字幕一区 | 麻豆一区二区三区精品视频 | 免费黄视频网站 | 久久久国产亚洲精品 | 日本在线免费 | 国产综合精品一区二区三区 | 色综合99 | 国产成人久久av免费高清密臂 | 成人伊人 | 成年人在线视频 | 羞羞网站免费观看 | 亚洲欧美中文日韩在线v日本 | 亚洲免费一区二区 | 国产一区二区在线免费观看 | 97久久精品午夜一区二区 | 久久精品视频网站 | 亚洲综合色网站 | av黄色在线| 国产成人精品网站 | 欧美精品一区久久 | 亚洲男女视频在线观看 | 国产精品亚洲精品日韩已方 | 国产精品免费一区二区三区四区 | 国产视频精品区 | 欧美在线国产精品 | 中文字幕一区二区三区精彩视频 | 欧美一区二区免费电影 | 亚洲成人一二区 | 精品日韩一区二区 | 国产免费一区二区 | 99精品欧美一区二区三区 | 国产精品久久 | 久久一 | 黄色大片在线免费观看 | 91视频免费视频 | 免费成年网站 | 日韩在线精品强乱中文字幕 | 91精品久久久久久久久久入口 | 亚洲精品一区中文字幕 |