-
大小: 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)\Unti
文件 2248 2014-10-11 15:49 MPU6050(dmp版)\MPU6050(库函数版dmp)\Unti
文件 65536 2014-10-11 15:49 MPU6050(dmp版)\MPU6050(库函数版dmp)\Unti
文件 968 2014-10-11 15:49 MPU6050(dmp版)\MPU6050(库函数版dmp)\Unti
文件 156 2014-10-11 21:13 MPU6050(dmp版)\MPU6050(库函数版dmp)\Unti
文件 776 2014-10-11 21:13 MPU6050(dmp版)\MPU6050(库函数版dmp)\Unti
文件 12680 2014-10-11 15:50 MPU6050(dmp版)\MPU6050(库函数版dmp)\Unti
文件 79448 2014-10-11 15:50 MPU6050(dmp版)\MPU6050(库函数版dmp)\Unti
文件 482112 2014-10-11 15:50 MPU6050(dmp版)\MPU6050(库函数版dmp)\Unti
............此处省略62个文件信息
- 上一篇:tensorflow 五种花朵分类识别
- 下一篇:使用opengl画桌子+球+地板
评论
共有 条评论