mpu6050 文件

MPU6050官方dmp库移植使用 eMPL里面是修改好的官方dmp文档,EXTI是管理外部中断的代码,IIC是模拟IIC通信部分的代码,最后两个文件是最重要的,是提供给用户调用的接口模块,main文件里只需要包含mpu_useapi.h文件即可里面存放了所有需要的接口函数和全局变量。这是软件部分的移植,然后硬件方面的接线默认是SDA->A7,SCL->A6,INT->A5,如果想要更改IIC的引脚,可以找到mpu_iic.h这个文件,里面有七个宏。里面存放的中断函数和中断初始化函数都需要做相应的修改,相信学长你没问题的。 阅读详情

/*----------------------------------------------------------------------------*/
/*
 File Name   :   MPU6050c

    Description   :

    Author    :   Jones.Lee
 Copyright   :  Jones_Workspace
    Version&Date  :  <2013.5.1>
    Connector Fuction  :
    Notes :
*/          
/*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------*/

    /*---Head Files---*/

 #include "mpu6050.h"
 #include "i2c.h"
 #include "math.h"
 #include "uart.h"
 #include "VisualScope.h"
    /*---Variable Definition--*/

    /*---Function Definiton---*/

    /*---Macro Definition-----*/

  #define  GREATH_DATA    3.9     //  2/0xff

 #define  GYRO_LSB  16.4

 #define  DEG_RAD   57.32   //180/ 3.14


 #define  ACCEL_X_REVISE  0
 #define  ACCEL_Y_REVISE  0
 #define  ACCEL_Z_REVISE  0

 #define  ANGLE_X_REVISE  0
 #define  ANGLE_Y_REVISE  0
 #define  ANGLE_Z_REVISE  0

 #define  GYRO_X_REVISE  90
 #define  GYRO_Y_REVISE  0
 #define  GYRO_Z_REVISE  0
/*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------*/
/*
Fuction Name      :  Mpu6050Init

Description       :

Input parameter   :    Class   Name  Action 
       
Output parameter  :    Class   Name  Action 
     
Author&Date       : Jones.Lee & 2013.5.1

Notes             : 
*/
/*----------------------------------------------------------------------------*/
void Mpu6050Init()
{
 IIC_Write_Byte(MPU_ADDR,PWR_MGMT_1, 0x00);
 IIC_Write_Byte(MPU_ADDR,SMPLRT_DIV, 0x07);
 IIC_Write_Byte(MPU_ADDR,CONFIG, 0x06);
 IIC_Write_Byte(MPU_ADDR,GYRO_CONFIG, 0x18);
 IIC_Write_Byte(MPU_ADDR,ACCEL_CONFIG, 0x01);

}
/*----------------------------------------------------------------------------*/
/*
Fuction Name      :  Mpu6050_ReadAccelrate

Description       :

Input parameter   :    Class   Name  Action 
       
Output parameter  :    Class   Name  Action 
     
Author&Date       : Jones.Lee & 2013.5.1

Notes             : there is a problem that I deal with it. the problem is
      about the value
*/
/*----------------------------------------------------------------------------*/
void Mpu6050_ReadAccelrate(unsigned short int* pwAccelX,unsigned short int* pwAccelY, unsigned short int * pwAccelZ)
{
    unsigned char MSub;
    unsigned char byData[6];
    unsigned int wTemp;

    MSub =  ACCEL_XOUT_H;
   
    IIC_Read_Bytes(MPU_ADDR, MSub, byData, 6);
    wTemp  = 0;
    wTemp = byData[0] << 8;
    wTemp |= byData[1];
 * pwAccelX = wTemp;

    wTemp  = 0;
    wTemp = byData[2] << 8;
    wTemp |= byData[3];
 * pwAccelY = wTemp;
   
    wTemp  = 0;
    wTemp = byData[4] << 8;
    wTemp |= byData[5];
 * pwAccelZ = wTemp;


#if  1      // 零点漂移

 *pwAccelX +=ACCEL_X_REVISE; 
 *pwAccelY +=ACCEL_Y_REVISE;
 *pwAccelZ +=ACCEL_Z_REVISE;
#endif
#if  1     

 *pwAccelX =- *pwAccelX ; 
 *pwAccelY =- *pwAccelY;
 *pwAccelZ =- *pwAccelZ ;
#endif
}
/*----------------------------------------------------------------------------*/
/*
Fuction Name      : Mpu6050_ReadAngle

Description       :

Input parameter   :    Class   Name  Action 
       float *   pwAngleX  the point of x axis's angle
      float *   pwAngleY  the point of y axis's angle
      float *   pwAngleZ  the point of z axis's angle
Output parameter  :    Class   Name  Action 
      void
Author&Date       : Jones.Lee & 2013.3.16

Notes             : 
*/
/*----------------------------------------------------------------------------*/
void Mpu6050_ReadAngle(float * pwAngleX,float *pwAngleY, float *pwAngleZ)
{
 unsigned char i;

 unsigned short int mid[3];    //y有个问题 就是变量转移问题 很是问题
           //这是折中办法  和 前面的角速度一样
    short int mids[3];

 double midf[3];

 unsigned int greath;

 unsigned short int m;

 greath = greath;       //消除Warning

 m = m;
 Mpu6050_ReadAccelrate(mid,mid+1,mid+2);
 for(i = 0; i < 3; i++)
 {
  mids[i] = mid[i];
  midf[i] = mids[i];
  midf[i] = ((midf[i]*GREATH_DATA));     // GREATH_DATA表示 3.9mg/LSB
 }
 
  
#if  0           //这种算法很简单,但是不好。有误差

 greath = sqrt(pow(midf[0],2)+pow(midf[1],2)+pow(midf[2],2));
 *pwAngleX =asin(midf[0]/greath);      //x轴的偏
 *pwAngleY =asin(midf[1]/greath);
 *pwAngleZ =asin(midf[2]/greath);
 
#else           //这种算法很复杂,建立模型,但是很简单,我套用公式,也懂了

 *pwAngleX = atan( midf[0] / ( sqrt( pow( midf[1] , 2 ) + pow( midf[2] ,2 ))));//x轴的偏角
 *pwAngleY = atan( midf[1] / ( sqrt( pow( midf[0] , 2 ) + pow( midf[2] , 2))));
 *pwAngleZ = atan( ( sqrt( pow( midf[0] , 2 ) + pow( midf[1] , 2))) / midf[2]);
#endif

#ifdef  DEG_RAD      //转化为角度。
 *pwAngleX *=DEG_RAD; 
 *pwAngleY *=DEG_RAD;
 *pwAngleZ *=DEG_RAD;
#endif

#if  1    
 *pwAngleX =-*pwAngleX; 
 *pwAngleY =-*pwAngleY;
 *pwAngleZ =-*pwAngleZ;
#endif
#if  0     
 *pwAngleX +=ANGLE_X_REVISE; 
 (*pwAngleY)=(*pwAngleY)-20;
 *pwAngleZ +=ANGLE_Z_REVISE;
#endif

}
/*----------------------------------------------------------------------------*/
/*
Fuction Name      : Read_Gyro

Description       :

Input parameter   :    Class   Name  Action 
       float *   pwGyroX  the point of x axis's gyro
      float *   pwGyroY  the point of y axis's gyro
      float *   pwGyroZ  the point of z axis's gyro
Output parameter  :    Class   Name  Action 
      void
Author&Date       : Jones.Lee & 2013.3.16

Notes             : 
*/
/*----------------------------------------------------------------------------*/
void Mpu6050_ReadGyro(float * pwGyroX,float * pwGyroY, float * pwGyroZ)
{
    unsigned char MSub;
    unsigned char byData[6];
    unsigned int wTemp;
 short int gyro[3];
 float  fgyro[3];
    MSub = GYRO_XOUT_H;
   
    IIC_Read_Bytes(MPU_ADDR, MSub, byData, 2);
    wTemp  = 0;
    wTemp = byData[0] << 8;
    wTemp |= byData[1];
    gyro[0] = wTemp;

    wTemp  = 0;
    wTemp = byData[2] << 8;
    wTemp |= byData[3];
    gyro[1]  = wTemp;
   
    wTemp  = 0;
    wTemp = byData[4] << 8;
    wTemp |= byData[5];
    gyro[2] = wTemp;

 fgyro[0] = gyro[0];
 fgyro[1] = gyro[1];
 fgyro[2] = gyro[2];
#if  1     

 fgyro[0] +=GYRO_X_REVISE; 
 fgyro[1] +=GYRO_Y_REVISE;
 fgyro[2] +=GYRO_Z_REVISE;
#endif

#ifdef    GYRO_LSB
 *pwGyroX =fgyro[0]/(GYRO_LSB);
  *pwGyroY =fgyro[1]/(GYRO_LSB);
 *pwGyroZ =fgyro[2]/(GYRO_LSB);
#endif

// VisualScope_Display(gyro[0],*pwGyroX,0,0,1000,1,0);

}

Redis 报错:Invalid argument during startup: unknown conf file parameter Redis所有配置项需要顶格,这个错误原因是有配置项未顶格,找到即可 删除顶格 D:\AllForSoft\redis>redis-server.exe redis.windows.conf Invalid argument during startup: unknown conf file parameter : D:\AllForSoft\redis>redis-server.exe redis.windows.conf _._ _. 阅读详情

相关推荐

MPU6050的官方DMP库

MPU6050 MPU6050的官方DMP库 DMP STM32 MSP430

MPU6050DMP库文件

MPU6050DMP库文件 去发现同类优质开源项目:https://gitcode.com/ 简介 本仓库提供了一个用于HAL库的MPU6050DMP库文件。MPU6050是一款集成了三轴陀螺仪和三轴加速度计的传感器,而DMP(Digital Motion Processor)是MPU6050内部的一个处理器,可以用来处理传感器数据,减轻主控芯片的负担。 功能特点 支持HAL库 提供MPU605...

gitblog_09767的博客 597

MPU6050封装+源码+原理图+datasheet

MPU6050封装 MPU6050原理图 MPU6050源码 MPU6050datasheet

STM32——IIC总线(MPU6050应用)

I2C总线介绍I2C(Inter-Integrated Circuit)总线(也称IIC或I2C)是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备,是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,期间封装形式少,通信速率高等优点。IIC总线特点两条总线线路:一条串行数据SDA,一条串行时钟线SCL来完成数据的传输及外围器件的扩展I2C总线上的每一个设备都可以作为主设备或者从设备,而且每一个设备都会对应一个唯一的地址。

qq_52479948的博客 3711

Arduino中MPU6050库文件和测试程序

Arduino中MPU6050库文件和测试程序 1、MPU6050库文件就 包括: (1)陀螺仪数据读取,3个加速度、3个旋转速度数据 (2)陀螺仪数据欧拉角读取,偏航、翻滚、俯仰三个角度值。 2、测试程序,将读取的欧拉角发送到串口。

mpu6050库.rar_MPU6050_mpu6050库

驱动mpu6050,读取mpu6050的6轴数据和温度值。

Invalid argument during startup: unknown conf file parameter : requirepass ,已解决

在配置文件里修改redis 密码后 执行启动命令 redis-server.exe redis.windows.conf 报错 Invalid argument during startup: unknown conf file parameter : requirepass 这是说在 “requirepass ” 这个参数未知,就是识别失败。大概是我们修改配置文件的时候格式弄错了,我们仔细看一下配置文件 解决办法 把多余的空格去掉,格式和官方保持一致。 再执行 redis-server.ex

weixin_44012027的博客 1万+

Amber分子动力学模拟:蛋白结构准备全流程与关键注意事项

分子动力学模拟是研究蛋白结构、配体结合与构象变化的重要计算手段,其结果的可靠性高度依赖初始结构的质量。在Amber模拟体系中,结构准备是决定后续计算成败的“一票否决”环节,任何缺失残基、错误质子化状态或未处理的二硫键都可能让长时程模拟失去意义。从PDB原始文件出发,需依次完成结构检查与清洗、残基命名统一、配体参数化、金属离子建模、加氢及质子化状态判断,最后通过tleap构建力场、溶剂盒子与离子环境。这一过程看似琐碎,却直接决定了蛋白在模拟中的物理合理性。无论是解析催化机制、评估药物结合亲和力,还是探索构象变

weixin_31714129的博客 239

安装redis自动启动服务报错Invalid argument during startup: unknown conf file parameter :

redis我没有设置有密码,然后想安装成系统自动启动服务,也就是打开电脑自动后台启动redis服务,我根据网上的信息一直都在设置,但是都无法安装成功,我是没有设置有密码的,网上搜的都是有设置密码的,或许是我没有搜到,如下图: redis安装服务命令:redis-server.exe --service-install redis.windows-service.conf --loglevel notice 接下来说一下我的方法,第一步: 接下来图下图所示: 填写完这些了以后,我们去到我们redis的

Luholixian的博客 7693

如何用 OBProxy 实现 OceanBase 的最佳路由策略

本文基于业务中一类常见的路由问题展开,对OceanBase的路由功能及对应配置项做详细介绍,指导用户在业务实践中如何正确的配置路由策略及快速排查路由问题

OceanBase分布式数据库的博客 1685

共享单车数据分析与需求预测项目

除了自行车共享系统的有趣的实际应用之外,这些系统生成的数据特征使它们成为研究的有吸引力的对象。由于这些系统在交通、环境和健康问题中的重要作用,它们引起了极大的关注。Huber 回归器:一个对异常值具有鲁棒性的模型,CV 得分为 0.4660,表明它对此数据集可能不那么有效。代码中的内容cv_score就像您正在使用的机器学习模型的成绩单。它告诉您模型的表现如何。减少异常值的影响:它还可以减少异常值的影响,因为对数转换显着缩小了数据的范围。因此,cv_score平均分数表明您的模型的预测效果如何。

极光喵的博客 2948

Invalid argument during startup: unknown conf file parameter : requirepass

执行命令:redis-server redis.windows.conf,提示 Invalid argument during startup: unknown conf file parameter : requirepass 打开conf文件,搜索requirepass将前面空格去除即可。

jun118166的博客 7443

惯性导航原理(九)-INS的初始对准-初始姿态确定+双矢量定姿

文章目录INS的初始对准INS初始化静基座/静态粗对准静态粗对准—加速度计调平原理加速度计调平静态粗对准—陀螺罗盘思考初始对准的影响因素双矢量定姿原理静态解析粗对准—双矢量定姿静态解析粗对准(续)其它初始对准方法精对准动对准 INS的初始对准 INS的初始对准为初始化的一部分 INS初始化 初始位置: 给定(INS没有初始位置确定的能力,例如从GPS ) 初始速度: 零(静止状态)或给定 初始姿态: 初始对准(INS有能力自己测资态) 粗对准vs. 精对准 静止状态vs. 运动状态 重要性: 失之毫厘,谬

十八与她的博客 1万+

Invalid argument during startup: unknown conf file parameter : masterauth

所遇问题过程描述 在搭建redis集群时, 在未进行修改masterauth,只修改slaveof和port的情况下,启动从数据库 步骤 复制一份redis.windows.conf为redis.windows-slave1.conf 仅更改: 1,slaveof 127.0.0.1 6379 2,port 6380 执行:redis-server.exe redis.windows-slave1.conf 报错:(Non critical) Master does not understand REP

u014657468的博客 1292

新手学习Vivado XDMA (1) - 配置详细分析

PCIe 在 Vivado XDMA 中的配置分析。

qq_18553915的博客 9710

步科触摸屏编程

1.首先官网上下载kinco软件,然后再安装驱动,安装的方式是需要两个文件。把两个文件放到driver文件夹下面,然后设备管理器右键更新,手选driver文件夹,自动安装即可。 步科触摸屏驱动文件下载地址 2.按照步科触摸屏使用手册一步一步来建立工程 Kinco HMIware使用手册下载地址 登录界面 涉及到的是页面切换,用的是login window,然后只留下等级输入那个

MAYBE的博客 2万+

windows 重启redis服务报Invalid argument during startup: unknown conf file parameter :

去掉前面空格,去计算机管理那里启动redis服务就好。

jiahai8的专栏 2553

软件需求规格说明书(SRS)深入解析

摘要: SRS(软件需求规格说明书)是定义系统功能、性能与接口的核心文档,为开发、测试、项目管理提供依据。标准结构包括引言、总体描述、功能/非功能需求、接口等模块。撰写需确保清晰、可验证、无歧义,避免模糊术语。示例展示学生注册模块的需求写法,强调性能与安全性要求。推荐使用Confluence、StarUML等工具辅助编写,交付时需包含主文档、原型图及需求跟踪矩阵。SRS应兼具技术性与管理性,作为沟通桥梁和验收标准。

moton2017的博客 2926

Windows下redis修改登录密码以及成为后台服务遇到的坑Redis Windows 服务启动异常 错误码1067与Invalid argument during startup: unknown

https://blog.youkuaiyun.com/qq_34206683/article/details/86510323 然而在修改配置文件的时候出现了一个问题 Invalid argument during startup: unknown conf file parameter : requirepass redis 设置来密码,出现来这个错误, 把配置文件那一行的 空格 去掉 # requir...

咖喱辣椒 1261

UNet改进(12):融合小波变换与注意力机制的图像分割新方法

本文提出了一种改进的WaveletAttentionUNet架构,通过结合小波变换和注意力机制来增强传统UNet的多尺度特征提取能力。该网络使用分组卷积模拟小波分解,将输入通道扩展为4个子带(LL、LH、HL、HH),并通过通道注意力机制自适应加权各子带特征。网络保留了UNet的编码器-解码器结构,在关键位置集成了WaveletAttention模块。实验证明该方法在医学图像分割等任务中能更好地保持边缘细节和复杂纹理特征,同时保持计算效率。

2501_91516851的博客 758

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

invalid argument during startup:unknown conf file parameter : requirepass

在修改redis密码的时候,启动redis服务端,出现了该错误 原因: 在配置文件中,修改完密码例如requirepass admin,该条数据需要顶格,不能够有空格

qq_44209563的博客 2271

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Invalid argument during startup: unknown conf file paramete

今天也是遇到了,在改配置的时候,在cmd中启动redis-server.exe  redis.windows.conf 再也启动不了,不知道怎么回事,百度的也是不起效果,我自是更改配置文件,从redis的压缩包从新进行解压一份找出一份redis.windos.conf的文件进行覆盖,可以进行启动了,改配时一定要注意,不要犯低级的错误                  ...

徐小冠 3467

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Invalid argument during startup: unknown conf file parameter : 锘?

Invalid argument during startup: unknown conf file parameter : 锘?

qq 117791303 121

Redis启动哨兵报错:Invalid argument during startup: unknown conf file parameter :

报错原因 sentinel.conf中存在不可见的空格、空行之类的 解决方法 删除所有空格、空行,然后重启

qq_38668544的博客 1322

Invalid argument during startup: unknown conf file parameter : requirepass

此情况多为redis的配置文件格式错误,多为空格导致,例如以下情况。解决办法,去掉前面的空格,保存重新启动执行。

weixin_55358075的博客 688
上一篇: 本文是关于使用C++调用Matlab编译生成的Dll的说明
下一篇: VC++中 Gallery文件夹是空
JonesLee3
博客等级 码龄14年 8粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值