资源简介
MPU6050获取角度值,一般使用DMP/卡尔曼滤波/互补滤波对原始数据进行处理。
DMP是MPU6050自带的用于运动处理的。
简单易移植且处理后得到的数据稳定性很好。
适用于智能车,四轴这类东西。
文档里有MPU6050库文件,IIC库文件,修改后的DMP库文件以及对应的main.c文件。
DMP是MPU6050自带的用于运动处理的。
简单易移植且处理后得到的数据稳定性很好。
适用于智能车,四轴这类东西。
文档里有MPU6050库文件,IIC库文件,修改后的DMP库文件以及对应的main.c文件。
代码片段和文件信息
#include “i2c.h“
#include “sys.h“
#include “delay.h“
/**************************************************************************
作者:平衡小车之家
我的淘宝小店:http://shop114407458.taobao.com/
**************************************************************************/
/**************************实现函数********************************************
*函数原型: void IIC_Init(void)
*功 能: 初始化I2C对应的接口引脚。
*******************************************************************************/
void IIC_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB ENABLE); //使能PB端口时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9; //端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //50M
GPIO_Init(GPIOB &GPIO_InitStructure); //根据设定参数初始化GPIOB
}
/**************************实现函数********************************************
*函数原型: void IIC_Start(void)
*功 能: 产生IIC起始信号
*******************************************************************************/
int IIC_Start(void)
{
SDA_OUT(); //sda线输出
IIC_SDA=1;
if(!READ_SDA)return 0;
IIC_SCL=1;
delay_us(1);
IIC_SDA=0;//START:when CLK is highDATA change form high to low
if(READ_SDA)return 0;
delay_us(1);
IIC_SCL=0;//钳住I2C总线,准备发送或接收数据
return 1;
}
/**************************实现函数********************************************
*函数原型: void IIC_Stop(void)
*功 能: //产生IIC停止信号
*******************************************************************************/
void IIC_Stop(void)
{
SDA_OUT();//sda线输出
IIC_SCL=0;
IIC_SDA=0;//STOP:when CLK is high DATA change form low to high
delay_us(1);
IIC_SCL=1;
IIC_SDA=1;//发送I2C总线结束信号
delay_us(1);
}
/**************************实现函数********************************************
*函数原型: u8 IIC_Wait_Ack(void)
*功 能: 等待应答信号到来
//返回值:1,接收应答失败
// 0,接收应答成功
*******************************************************************************/
int IIC_Wait_Ack(void)
{
u8 ucErrTime=0;
SDA_IN(); //SDA设置为输入
IIC_SDA=1;
delay_us(1);
IIC_SCL=1;
delay_us(1);
while(READ_SDA)
{
ucErrTime++;
if(ucErrTime>50)
{
IIC_Stop();
return 0;
}
delay_us(1);
}
IIC_SCL=0;//时钟输出0
return 1;
}
/**************************实现函数********************************************
*函数原型: void IIC_Ack(void)
*功 能: 产生ACK应答
*******************************************************************************/
void IIC_Ack(void)
{
IIC_SCL=0;
SDA_OUT();
IIC_SDA=0;
delay_us(1);
IIC_SCL=1;
delay_us(1);
IIC_SCL=0;
}
/**************************实现函数********************************************
*函数原型: void IIC_NAck(void)
*功 能: 产生NACK应答
*******************************************************************************/
void IIC_NAck(void)
{
IIC_SCL=0;
SDA_OUT();
IIC_SDA=1;
delay_us(1);
IIC_SCL=1;
delay_us(1);
IIC_SCL=0;
}
/*
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 19342 2012-12-14 11:16 MPU6050(STM32)\DMP\dmpKey.h
文件 6765 2012-12-14 11:16 MPU6050(STM32)\DMP\dmpmap.h
文件 89471 2019-12-28 19:55 MPU6050(STM32)\DMP\inv_mpu.c
文件 4865 2015-01-17 12:09 MPU6050(STM32)\DMP\inv_mpu.h
文件 58389 2019-12-28 20:24 MPU6050(STM32)\DMP\inv_mpu_dmp_motion_driver.c
文件 3538 2012-12-14 11:16 MPU6050(STM32)\DMP\inv_mpu_dmp_motion_driver.h
文件 11039 2019-12-28 14:52 MPU6050(STM32)\i2c.c
文件 3114 2019-12-28 14:52 MPU6050(STM32)\i2c.h
文件 674 2020-02-14 16:19 MPU6050(STM32)\main.c
文件 5737 2019-12-28 20:18 MPU6050(STM32)\mpu6050.c
文件 14794 2019-12-28 14:55 MPU6050(STM32)\mpu6050.h
目录 0 2019-12-28 20:24 MPU6050(STM32)\DMP
目录 0 2020-02-14 16:18 MPU6050(STM32)
----------- --------- ---------- ----- ----
217728 13
- 上一篇:反射算法能做什么修正.pdf
- 下一篇:OfficeOpenxm
lCrypto
相关资源
- STM32F407 485 MODBUS
- STM32 hal库操作ESP8266
- STM32 STM32F103C8T6 读取DS18B20温度数据例
- STM32 STM32F103C8T6 CAN从机+4DI2DO 硬件设计
- STM32外部计数器程序
- STMicroelectronics STM32及STM8全系列Altium
- 基于STM32cubeMX,STM32F103C8T6的PWM输出实
- US100超声波代码stm32
- 基于STM32电力数据采集系统的设计
- STM32 之DHT11驱动程序
- Arduino STM32 平衡小车之家平衡小车源码
- DS18B20仿真
- STM32串口封装源码,可直接调用
- STM32L4_硬件SPI配置_LL库版.rar
- STM 32 Nucleo H743zi芯片引脚图STM32 H732Z
- STM32的USART串口查询方式(库函数)
- STM32的PS2鼠标程序,亲测可用
- 移远MC20模块调试MPU6050
- STM32F103RCT6使用DS1302时钟模块
- stm32F407光电编码器代码
- 音频信号FFT变换后节拍检测的软件.
- stm32f103zet6最小系统原理图
- STM32F103单片机输出SPWM波
- STM32F103 ADC 中断模式 连续转换
- stm32f103引脚详图
- stm32控制ch376s例程
- STM32使用HAL库移植freemodbus-v1.6
- stm32 LabVIEW控制开发板LED灯显示
- STM32F103C8T6+1.44寸ST7735TFT LCD彩屏驱动程
-
Jli
nk unlock for F1,解锁F1系列的ARM芯
评论
共有 条评论