资源简介
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
相关资源
- stm32做的红外遥控解码程序
- 《emwin实战指南(基于STM32-ISO开发板)
- Beginning STM32: Developing with FreeRTOS libo
- stm32f103c8t6_sch.Lib
- ALIENTEK战舰STM32F1 V3开发板原理图.rar
- STM32F103RC+ADC+DMA多通道采样LCD显示
- I2C读写AT24C02 基于STM32F103 cube116540
- 基于stm32f103ve的程序——跑马灯实验
- 基于STM32RCT6的步进电机驱动程序
- stm32f407上的两个can发送和接收例程
- STM32 led 时钟
- STM32 2.4G通信例程
- 直流无刷电机方波驱动 stm32 例程代码
- STM32中文资料
- STM32蓝牙和串口程序
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- mpu6050+hmc5883L.rar
- stm32f030 IAP Demo(原创)
- STM32基于rt_thread操作系统的SDHC卡文件
- NRF24L01实现51与STM32双向通讯
- STM32F103 串口程序(完整版)
- stm32 ds18b20 温度传感器 测试通过
- stm32官方例程
- STM32F103定时器中断程序
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- STM32定时器使用入门。看了这个程序会
- SIM908 SDIO FSMC STM32 FIFO
评论
共有 条评论