• 大小: 545KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: 其他
  • 标签: mpu6050dmp  

资源简介

利用mpu6050官方dmp库读取四元数和pitch,roll,yaw,简单实用 利用mpu6050官方dmp库读取四元数和pitch,roll,yaw,简单实用

资源截图

代码片段和文件信息

#include “IIC.h“
#include “sys.h“


#define SCL  PBout(8)    //   GPIOE->BSRR = GPIO_Pin_8 /* GPIO_SetBits(GPIOB  GPIO_Pin_10)   */
//#define SCL=0         GPIOE->BRR  = GPIO_Pin_8 /* GPIO_ResetBits(GPIOB  GPIO_Pin_10) */

#define SDA  PBout(9)//   GPIOE->BSRR = GPIO_Pin_9 /* GPIO_SetBits(GPIOB  GPIO_Pin_11)   */
//#define SDA=0         GPIOE->BRR  = GPIO_Pin_9 /* GPIO_ResetBits(GPIOB  GPIO_Pin_11) */

//#define SCL_read      GPIOE->IDR  & GPIO_Pin_8 /* GPIO_ReadInputDataBit(GPIOB  GPIO_Pin_10) */
#define SDA_read  PBin(9)//   GPIOE->IDR  & GPIO_Pin_9 /* GPIO_ReadInputDataBit(GPIOB  GPIO_Pin_11) */

static void I2C_delay(void)
{
    volatile int i = 7;
    while (i)
        i--;
}

static u8 I2C_Start(void)
{
    SDA=1;
    SCL=1;
    I2C_delay();
    if (!SDA_read)
        return false;
    SDA=0;
    I2C_delay();
    if (SDA_read)
        return false;
    SDA=0;
    I2C_delay();
    return true;
}

static void I2C_Stop(void)
{
    SCL=0;
    I2C_delay();
    SDA=0;
    I2C_delay();
    SCL=1;
    I2C_delay();
    SDA=1;
    I2C_delay();
}

static void I2C_Ack(void)
{
    SCL=0;
    I2C_delay();
    SDA=0;
    I2C_delay();
    SCL=1;
    I2C_delay();
    SCL=0;
    I2C_delay();
}

static void I2C_NoAck(void)
{
    SCL=0;
    I2C_delay();
    SDA=1;
    I2C_delay();
    SCL=1;
    I2C_delay();
    SCL=0;
    I2C_delay();
}

static u8 I2C_WaitAck(void)
{
    SCL=0;
    I2C_delay();
    SDA=1;
    I2C_delay();
    SCL=1;
    I2C_delay();
    if (SDA_read) {
        SCL=0;
        return false;
    }
    SCL=0;
    return true;
}

static void I2C_SendByte(u8 byte)
{
    u8 i = 8;
    while (i--) {
        SCL=0;
        I2C_delay();
        if (byte & 0x80)
            SDA=1;
        else
            SDA=0;
        byte <<= 1;
        I2C_delay();
        SCL=1;
        I2C_delay();
    }
    SCL=0;
}

static u8 I2C_ReceiveByte(void)
{
    u8 i = 8;
    u8 byte = 0;

    SDA=1;
    while (i--) {
        byte <<= 1;
        SCL=0;
        I2C_delay();
        SCL=1;
        I2C_delay();
        if (SDA_read) {
            byte |= 0x01;
        }
    }
    SCL=0;
    return byte;
}

void i2cInit(void)
{
RCC->APB2ENR|=1<<6;   //使能PORTE口时钟  
GPIOB->CRH&=0XFFFFFF00; 
GPIOB->CRH|=0X00000055;//IO状态设置

}

u8 i2cWriteBuffer(u8 addr u8 reg u8 len u8 * data)
{
    int i;
    if (!I2C_Start())
        return false;
    I2C_SendByte(addr << 1 | I2C_Direction_Transmitter);
    if (!I2C_WaitAck()) {
        I2C_Stop();
        return false;
    }
    I2C_SendByte(reg);
    I2C_WaitAck();
    for (i = 0; i < len; i++) {
        I2C_SendByte(data[i]);
        if (!I2C_WaitAck()) {
            I2C_Stop();
            return false;
        }
    }
    I2C_Stop();
    return true;
}
/////////////////////////////////////////////////////////////////////////////////
int i2cwrite(u8 addr u8 reg u8 len u

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4449  2017-02-26 15:26  MPU6050(dmp版)\MPU6050(库函数版dmp)\HARDWARE\IIC\IIC.c

     文件       1766  2013-08-24 16:07  MPU6050(dmp版)\MPU6050(库函数版dmp)\HARDWARE\IIC\IIC.h

     文件      19342  2012-12-14 11:16  MPU6050(dmp版)\MPU6050(库函数版dmp)\HARDWARE\MPU6050\dmpKey.h

     文件       6765  2012-12-14 11:16  MPU6050(dmp版)\MPU6050(库函数版dmp)\HARDWARE\MPU6050\dmpmap.h

     文件      86454  2017-02-26 15:37  MPU6050(dmp版)\MPU6050(库函数版dmp)\HARDWARE\MPU6050\inv_mpu.c

     文件       4651  2013-08-24 21:48  MPU6050(dmp版)\MPU6050(库函数版dmp)\HARDWARE\MPU6050\inv_mpu.h

     文件      58416  2017-04-23 09:10  MPU6050(dmp版)\MPU6050(库函数版dmp)\HARDWARE\MPU6050\inv_mpu_dmp_motion_driver.c

     文件       3538  2013-06-13 16:52  MPU6050(dmp版)\MPU6050(库函数版dmp)\HARDWARE\MPU6050\inv_mpu_dmp_motion_driver.h

     文件        399  2011-04-23 10:24  MPU6050(dmp版)\MPU6050(库函数版dmp)\keilkilll.bat

     文件       2067  2013-04-03 12:14  MPU6050(dmp版)\MPU6050(库函数版dmp)\SYSTEM\delay\delay.c

     文件        905  2013-04-03 12:14  MPU6050(dmp版)\MPU6050(库函数版dmp)\SYSTEM\delay\delay.h

     文件       2225  2009-05-07 14:42  MPU6050(dmp版)\MPU6050(库函数版dmp)\SYSTEM\sys\cortexm3_macro.h

     文件       6194  2009-05-07 14:42  MPU6050(dmp版)\MPU6050(库函数版dmp)\SYSTEM\sys\stm32f10x_conf.h

     文件       4529  2012-12-18 12:35  MPU6050(dmp版)\MPU6050(库函数版dmp)\SYSTEM\sys\stm32f10x_it.h

     文件      28290  2009-05-07 14:42  MPU6050(dmp版)\MPU6050(库函数版dmp)\SYSTEM\sys\stm32f10x_map.h

     文件      19198  2009-05-07 14:42  MPU6050(dmp版)\MPU6050(库函数版dmp)\SYSTEM\sys\stm32f10x_nvic.h

     文件       3388  2009-05-07 14:42  MPU6050(dmp版)\MPU6050(库函数版dmp)\SYSTEM\sys\stm32f10x_type.h

     文件       6854  2013-04-03 12:13  MPU6050(dmp版)\MPU6050(库函数版dmp)\SYSTEM\sys\sys.c

     文件       3868  2013-04-03 12:13  MPU6050(dmp版)\MPU6050(库函数版dmp)\SYSTEM\sys\sys.h

     文件       3592  2013-08-24 20:35  MPU6050(dmp版)\MPU6050(库函数版dmp)\SYSTEM\usart\usart.c

     文件       1132  2013-08-24 20:28  MPU6050(dmp版)\MPU6050(库函数版dmp)\SYSTEM\usart\usart.h

     文件     196608  2014-10-11 15:49  MPU6050(dmp版)\MPU6050(库函数版dmp)\Untitled Project.IAB

     文件       2248  2014-10-11 15:49  MPU6050(dmp版)\MPU6050(库函数版dmp)\Untitled Project.IAD

     文件      65536  2014-10-11 15:49  MPU6050(dmp版)\MPU6050(库函数版dmp)\Untitled Project.IMB

     文件        968  2014-10-11 15:49  MPU6050(dmp版)\MPU6050(库函数版dmp)\Untitled Project.IMD

     文件        156  2014-10-11 21:13  MPU6050(dmp版)\MPU6050(库函数版dmp)\Untitled Project.PFI

     文件        776  2014-10-11 21:13  MPU6050(dmp版)\MPU6050(库函数版dmp)\Untitled Project.PO

     文件      12680  2014-10-11 15:50  MPU6050(dmp版)\MPU6050(库函数版dmp)\Untitled Project.PR

     文件      79448  2014-10-11 15:50  MPU6050(dmp版)\MPU6050(库函数版dmp)\Untitled Project.PRI

     文件     482112  2014-10-11 15:50  MPU6050(dmp版)\MPU6050(库函数版dmp)\Untitled Project.PS

............此处省略62个文件信息

评论

共有 条评论

相关资源