STM32CUBEIDE
cubeide具有可视的时钟树,直接配置的GPIO,UART很方便写代码,但是现在网络上的cubeide的代码文件还是比较少的,就想着多发一点ide的代码。
这个项目是github上的,这里只是做了一个简单的介绍
具体网址:https://github.com/ibrahimcahit/STM32_MPU6050_KalmanFilter
mpu6050的寄存器可以看这篇:https://blog.csdn.net/w1050321758/article/details/108996091?spm=1001.2014.3001.5506
ide配置
用的芯片是stm32f407,采用软件i2c通信,通过串口把解算的数据打印出来了
不过HAL库自带的I2C确实方便。
先配一下时钟树和串口
再配一下uart
I2C配置
再把GPIO配置一下
这样就好了。
MPU6050
mpu6050就是里面有个陀螺仪(计算角速度),加速度计,和温度传感器(在网上看见说搞温漂的)。
头文件内容
#ifndef BSP_MPU6050_H_
#define BSP_MPU6050_H_
#include <stdint.h>
#include "i2c.h"
// MPU6050 structure
typedef struct {
int16_t Accel_X_RAW;
int16_t Accel_Y_RAW;
int16_t Accel_Z_RAW;
double Ax;
double Ay;
double Az;
int16_t Gyro_X_RAW;
int16_t Gyro_Y_RAW;
int16_t Gyro_Z_RAW;
double Gx;
double Gy;
double Gz;
float Temperature;
double KalmanAngleX;
double KalmanAngleY;
} MPU6050_t;
// Kalman structure
typedef struct {
double Q_angle;
double Q_bias;
double R_measure;
double angle;
double bias;
double P[2][2];
} Kalman_t;
uint8_t MPU6050_Init(I2C_HandleTypeDef *I