mpu6050是嵌入式设计中一个比较常用的芯片,虽然有比它更好的芯片,但耐不住这块芯片便宜,所以使用也是非常广。它的主要功能是可以提供以它为中心的欧拉角的值和一些陀螺仪,加速度传感器的数据。
笔者根据正点原子stm32的dmp库,花了一个下午的时间将dmp库移植到了tm4上,并使用了tm4自带的软件iic功能,具体库下载地址为:
https://download.csdn.net/download/qq_43725844/12406989

一、接线

具体的接线为:
SCL——————PB2
SDA——————PB3
VCC——————3.3V
GND——————GND
其他io口空着
注意所有的模块接单片机时都必须共地(即单片机的GND与模块的GND相连)

二、关于移植代码

有关DMP库的内容实在太多,但作为单纯的移植来说并不需要搞懂,只需要修改一些东西达到和源代码相同的格式就行。笔者这里主要修改的就是IIC发送和接收数据的代码,只改一些比较底层的代码,让其他的代码都能不报错就行。

三、关于硬件连接和一些小问题

接线如上,但问题有不少;
一、尽量不要使用杜邦线,使用杜邦线的话建议粘的牢一些,mpu6050的电压差非常敏感,有时候只是碰了下电源线,mpu6050的电源灯就会闪烁,这个闪烁很危险!!!!这一闪就代表着6050进行了重新上电,而iic协议的6050必须要有一个上电后初始化的动作,但单片机此时已工作在while循环中,初始化是不可能了,这样也就导致了单片机卡死的现象。解决方法的话还是要从连接线上下手,笔者建议大家能画板子的画一块板子,这样起码供电没有问题。
二、mpu6050一般要有一个一秒钟左右的上电时间,所以单片机最开始应该有一个延迟一秒的等待时间,不然mpu6050可能完不成初始化。
三、有时在运行dmp库中会发现单片机会一直卡在自检中,这样大概率上是因为mpu6050没有放平。
四、在读数据时发现z轴数据即使6050自身没动也会慢慢增加,这种现象称为零漂,都是便宜惹的祸,要解决的话还是要使用更贵的芯片或者使用地磁模块来解决。贵的芯片自有贵的道理。。。

三、关于使用

一、在mpu6050初始化时一定要放平,其在初始化时会以当前的状态为0值进而有后续变化;
二、有关读6050的值建议在定时器中断中来读,不要使用延时函数来读(笔者用500ms延时函数来读就出现了读不了值的问题)
三、mpu6050最常用的还是它的z轴的值,一般用在小车的原地旋转上;或者是用于平衡车上x或y轴的值;另外在使用6050时一定要将6050固定好!!!

tm4驱动外接模块系列(一)--------有dmp库的mpu6050相关推荐

  1. ESP-12F驱动MPU6050使用DMP库姿态解算

    一.准备工作 主芯片采用是安信可科技的ESF-12F模组(内置ESP8266芯片),使用GPIO模拟I2C驱动MPU6050,i2c驱动部分可直接参考官方例程中的i2c_master.c文件,(附件提 ...

  2. esp32系列(11):ESP32 IDF平台 mpu6050 DMP 驱动移植及测试上位机开发

    目录 1 DMP 官方库介绍 1.1 DMP与MPL(Motion Processing Libraries)功能 1.2 运行MPL的硬件要求 1.3 Motion Driver 6.12 的架构 ...

  3. 字符设备驱动之cdev_init()系列函数

    字符设备驱动之cdev_init()系列函数 1.内核中每个字符设备都对应一个 cdev 结构的变量,下面是它的定义: linux-2.6.22/include/linux/cdev.h struct ...

  4. K_A07_003 基于 STM32等单片机驱动DRV8825模块按键控制步进电机正反转

    目录 一.资源说明 二.基本参数 1.参数 2.引脚说明 三.驱动说明 SETP时序 对应程序: 细分说明 程序 四.部分代码说明 1.接线说明 1.1.STC89C52RC+DRV8825模块 1. ...

  5. K_A07_001 基于 STM32等单片机驱动A4988模块按键控制步进电机正反转

    目录 一.资源说明 二.基本参数 1.参数 2.引脚说明 三.驱动说明 SETP时序 对应程序: 细分说明 程序 四.部分代码说明 1.接线说明 1.1.STC89C52RC+A4988模块 1.2. ...

  6. AP类WiFi模块系列一:核心板式AP类WiFi模块

    WiFi模块主要有网卡类和AP类两大类.     网卡类WiFi模块通信接口.通信信道.综合功能可以大体分成八大类:AP类的WiFi模块可以分为核心板式AP类WiFi模块(核心板方式,只引出接口pin ...

  7. 网卡类WiFi模块系列三:USB接口双通道单/双频WiFi模块

    WiFi模块主要有网卡类和AP类两大类.网卡类WiFi模块通信接口.通信信道.综合功能可以大体分成八大类:AP类的WiFi模块可以分为嵌入式AP模块(核心板方式,只引出接口pin脚)和AP主板(也就是 ...

  8. nginx https 访问http_Nginx之Http模块系列之访问控制模块

    个人博客:https://www.aiopsclub.com/ Nginx之Http模块系列之访问控制模块 接下来我们开始逐个模块讲解nginx,相信这部分结束后,大家对nginx支持的模块功能能做到 ...

  9. [.NET领域驱动设计实战系列]专题八:DDD案例:网上书店分布式消息队列和分布式缓存的实现...

    原文:[.NET领域驱动设计实战系列]专题八:DDD案例:网上书店分布式消息队列和分布式缓存的实现 一.引言 在上一专题中,商家发货和用户确认收货功能引入了消息队列来实现的,引入消息队列的好处可以保证 ...

最新文章

  1. 怎么设置java的精度值_Java:如何为double值设置Precision?
  2. 编程学将成为必然趋势,青少年编程,从哪里开始?这里推荐Python
  3. boost::fusion::reverse用法的测试程序
  4. 关于SparkMLlib的基础数据结构Spark-MLlib-Basics
  5. Oracle 自己主动诊断资料档案库 (ADR)、自己主动诊断工作流、ADRCI工具
  6. Kali Linux2使用基础
  7. Javascript is based on signal thread
  8. 博古通今的孩子是怎么养成的?答案就在这本影响了无数中国人思想的奇书里……
  9. sql server实用工具sql prompt的安装与注册
  10. 【转】 C#学习笔记14——Trace、Debug和TraceSource的使用以及日志设计
  11. 笛卡尔坐标系_笛卡儿坐标系
  12. 华三服务器管理口地址_不同型号服务器的默认管理IP及账号密码汇总
  13. Excel进行数据分析的常用知识的学习整理
  14. 抖音数据分析工具pc端_用于分析Windows PC上硬盘空间的四个最佳免费工具
  15. 前端白屏问题_首页白屏的引发的思考(一)
  16. 谷歌浏览器怎么设置默认隐身模式启动
  17. 还在使用@Autowired 吗?@Autowired和@Resource有啥区别
  18. 手机6120C 玩仙剑dos版
  19. 【esp32-s3】7.2 I2S——播放wav文件
  20. 根据密码子生成蛋白质序列(根据字典破译密码)

热门文章

  1. libreCAD源码阅读笔记1
  2. java模仿银行账务业务_Java基础案例 - 模拟银行存取款业务
  3. 06 - table表格标签+ 行合并+列合并
  4. Matlab模拟钢琴识别琴谱GUI
  5. 王桂林 C++基础与提高 练习题——格式时钟输出(实时的,精确到秒)
  6. windows7修改(缩小)快捷方式箭头
  7. Linux的系统安全及管理
  8. 小目标检测算法SNIPER—— SNIP的实战版本 (目标检测)(two-stage)(深度学习)(Arvix 2018)
  9. 吴恩达机器学习中文版课后题(中文题目+数据集+python版答案)week1 线性回归
  10. python中rjust用法_python中rjust的用法