MPU6050姿态解算STM32源码(互补滤波).rar

  • A6_310173
    了解作者
  • 1.5MB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-04-23 09:48
    上传日期
STM32互补滤波源码,MPU6050姿态角解算。详细中文注释
MPU6050姿态解算STM32源码(互补滤波).rar
  • MPU6050姿态解算STM32源码(互补滤波)
  • BALANCE
  • CONTROL
  • control.h
    375B
  • control.c
    2KB
  • OBJ
  • usart.crf
    292.3KB
  • control.d
    1.3KB
  • Minibalance.hex
    91KB
  • mpu6050.crf
    294.8KB
  • minibalance.d
    1.2KB
  • Minibalance.axf
    746.7KB
  • inv_mpu.crf
    311.1KB
  • minibalance.o
    290.1KB
  • encoder.crf
    296.3KB
  • control.crf
    292.5KB
  • inv_mpu.d
    1.2KB
  • Minibalance.lnp
    511B
  • ioi2c.o
    297.3KB
  • timer.crf
    291.9KB
  • delay.crf
    292.3KB
  • inv_mpu_dmp_motion_driver.o
    313.7KB
  • ioi2c.crf
    295.8KB
  • ioi2c.d
    1.1KB
  • inv_mpu_dmp_motion_driver.crf
    303.3KB
  • startup_stm32f10x_md.o
    5.8KB
  • usart.o
    291KB
  • usart.d
    1.2KB
  • control.o
    293KB
  • delay.d
    1.2KB
  • Minibalance.htm
    134.9KB
  • timer.d
    1.2KB
  • mpu6050.o
    300.7KB
  • delay.o
    290.3KB
  • encoder.d
    1.6KB
  • filter.o
    11.4KB
  • inv_mpu_dmp_motion_driver.d
    1.6KB
  • mpu6050.d
    1.2KB
  • sys.o
    293.4KB
  • encoder.o
    298.9KB
  • sys.crf
    293.8KB
  • timer.o
    289.3KB
  • inv_mpu.o
    325KB
  • Minibalance.build_log.htm
    261B
  • sys.d
    1.1KB
  • minibalance.crf
    291.7KB
  • Minibalance.map
    143.8KB
  • USER
  • Minibalance.uvgui.passoni
    150.5KB
  • Minibalance.uvproj
    17.4KB
  • Minibalance.c
    770B
  • Minibalance.uvopt
    16.6KB
  • Minibalance_uvopt.bak
    16.6KB
  • Minibalance_Target 1.dep
    16.7KB
  • Minibalance.uvgui_passoni.bak
    152.9KB
内容介绍
#include "control.h" #include "filter.h" /************************************************************************** 作者:平衡小车之家 我的淘宝小店:http://shop114407458.taobao.com/ **************************************************************************/ int TIM1_UP_IRQHandler(void) { if(TIM1->SR&0X0001)//5ms定时中断 { TIM1->SR&=~(1<<0); //===清除定时器1中断标志位 Get_Angle(Way_Angle); //===更新姿态 } return 0; } /************************************************************************** 函数功能:获取角度 入口参数:获取角度的算法 1:无 2:卡尔曼 3:互补滤波 返回 值:无 **************************************************************************/ void Get_Angle(u8 way) { float Accel_Y,Accel_X,Accel_Z,Gyro_Y; if(way==1) //DMP没有涉及到严格的时序问题,在主函数读取 { } else { Gyro_Y=(I2C_ReadOneByte(devAddr,MPU6050_RA_GYRO_YOUT_H)<<8)+I2C_ReadOneByte(devAddr,MPU6050_RA_GYRO_YOUT_L); //读取Y轴陀螺仪 Accel_Z=(I2C_ReadOneByte(devAddr,MPU6050_RA_ACCEL_ZOUT_H)<<8)+I2C_ReadOneByte(devAddr,MPU6050_RA_ACCEL_ZOUT_L); //读取Z轴陀螺仪 Accel_X=(I2C_ReadOneByte(devAddr,MPU6050_RA_ACCEL_XOUT_H)<<8)+I2C_ReadOneByte(devAddr,MPU6050_RA_ACCEL_XOUT_L); //读取X轴加速度记 if(Gyro_Y>32768) Gyro_Y-=65536; //数据类型转换 也可通过short强制类型转换 if(Accel_Z>32768) Accel_Z-=65536; //数据类型转换 if(Accel_X>32768) Accel_X-=65536; //数据类型转换 Accel_Y=atan2(Accel_X,Accel_Z)*180/PI; //计算与地面的夹角 Gyro_Y=Gyro_Y/16.4; //陀螺仪量程转换 if(Way_Angle==2) Kalman_Filter(Accel_Y,-Gyro_Y);//卡尔曼滤波 else if(Way_Angle==3) Yijielvbo(Accel_Y,-Gyro_Y); //互补滤波 Angle_Balance=angle; //更新平衡倾角 } }
评论
    相关推荐
    • STM32 程序
      STM32一些自己写过的程序并应用过可以使用的,包括直流电机驱动,温度显示,oled显示,adc实验,PWM输出,定时器中断,全部都写在了main函数中,不过写的有一点乱。(pwm实验可以看我的博客)
    • STM32
      STM32
    • STM32
      STM32 该存储库用于容纳我的学习项目,以便使用STM32开发板进行嵌入式系统编程。
    • stm32 sim 7600
      stm32 ota sim 7600 stm32 ota sim 7600stm32 ota sim 7600stm32 ota sim 7600stm32 ota sim 7600stm32 ota sim 7600stm32 ota sim 7600stm32 ota sim 7600stm32 ota sim 7600stm32 ota sim 7600stm32 ota sim 7600...
    • STM32
      关于 ...用于存放学习STM32过程中相关的笔记 作者:nekonana 列表 ::: tip该列表为总体列表,包含已更新和待更新项目 有什么新的想法都会开个待更新项目开坑::: STM32开发环境选择 STM32资料库建立
    • stm32 pack
      keil5 中使用的 STM32包 其中包括 STM32F0 STM32F1 STM32F3 STM32L0 STM32L1
    • stm32cubemx
      stm32cubemx st的代码生成器,安装后可以进行图形化的代码生成,项目生成!
    • STM32CubeMX
      ST(意法半导体)公司为方便STM32的使用和学习,以及HAL库的推广,自行研发的可以通过配置,自动生成初始化代码的工具软件
    • STM32 JoyStickMouse
      今天终于把 STM32 的例程 JoyStickMouse 跑起来了,上传一份备忘。 注意要根据 stm32f10x_conf.h 中的注释去掉一些没用到的文件
    • stm32 demo
      stm32demo 内置adc采集 使用oled及串口显示,可以用于小型项目的demo。 及课程设计。