tm4驱动外接模块系列(一)--------有dmp库的mpu6050
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相关推荐
- ESP-12F驱动MPU6050使用DMP库姿态解算
一.准备工作 主芯片采用是安信可科技的ESF-12F模组(内置ESP8266芯片),使用GPIO模拟I2C驱动MPU6050,i2c驱动部分可直接参考官方例程中的i2c_master.c文件,(附件提 ...
- esp32系列(11):ESP32 IDF平台 mpu6050 DMP 驱动移植及测试上位机开发
目录 1 DMP 官方库介绍 1.1 DMP与MPL(Motion Processing Libraries)功能 1.2 运行MPL的硬件要求 1.3 Motion Driver 6.12 的架构 ...
- 字符设备驱动之cdev_init()系列函数
字符设备驱动之cdev_init()系列函数 1.内核中每个字符设备都对应一个 cdev 结构的变量,下面是它的定义: linux-2.6.22/include/linux/cdev.h struct ...
- K_A07_003 基于 STM32等单片机驱动DRV8825模块按键控制步进电机正反转
目录 一.资源说明 二.基本参数 1.参数 2.引脚说明 三.驱动说明 SETP时序 对应程序: 细分说明 程序 四.部分代码说明 1.接线说明 1.1.STC89C52RC+DRV8825模块 1. ...
- K_A07_001 基于 STM32等单片机驱动A4988模块按键控制步进电机正反转
目录 一.资源说明 二.基本参数 1.参数 2.引脚说明 三.驱动说明 SETP时序 对应程序: 细分说明 程序 四.部分代码说明 1.接线说明 1.1.STC89C52RC+A4988模块 1.2. ...
- AP类WiFi模块系列一:核心板式AP类WiFi模块
WiFi模块主要有网卡类和AP类两大类. 网卡类WiFi模块通信接口.通信信道.综合功能可以大体分成八大类:AP类的WiFi模块可以分为核心板式AP类WiFi模块(核心板方式,只引出接口pin ...
- 网卡类WiFi模块系列三:USB接口双通道单/双频WiFi模块
WiFi模块主要有网卡类和AP类两大类.网卡类WiFi模块通信接口.通信信道.综合功能可以大体分成八大类:AP类的WiFi模块可以分为嵌入式AP模块(核心板方式,只引出接口pin脚)和AP主板(也就是 ...
- nginx https 访问http_Nginx之Http模块系列之访问控制模块
个人博客:https://www.aiopsclub.com/ Nginx之Http模块系列之访问控制模块 接下来我们开始逐个模块讲解nginx,相信这部分结束后,大家对nginx支持的模块功能能做到 ...
- [.NET领域驱动设计实战系列]专题八:DDD案例:网上书店分布式消息队列和分布式缓存的实现...
原文:[.NET领域驱动设计实战系列]专题八:DDD案例:网上书店分布式消息队列和分布式缓存的实现 一.引言 在上一专题中,商家发货和用户确认收货功能引入了消息队列来实现的,引入消息队列的好处可以保证 ...
最新文章
- 如何在Windows7上安装Hyper-v manager
- nerdctl命令tab键补齐方法
- mysql 字段相同条数_用sql语句统计数据库某个字段中相同的数据有多少条?
- 深入浅出:HTTP/2
- python pca主成分_超越“经典” PCA:功能主成分分析(FPCA)应用于使用Python的时间序列...
- django-关联查询-通过模型类跨表关联查询
- 何时使用.First以及何时将.FirstOrDefault与LINQ结合使用?
- 线性代数与矩阵论 定理 1.3.9 唯一析因定理
- linux编程 定时器,Linux 定时器编程
- Micrium uC-Probe导入.elf文件的问题
- (转)国内外优秀的Web前端工程师
- SQL 存储过程使用
- linux配置web页面登录密码,在Linux下通过WEB认证方式上网
- js发布订阅原理,代码解析
- 无损音乐统一音量大小好吗_您可以无损增加MP3文件的音量吗?
- JAVA飞机移动斜着走_java复习 做一个简易的飞机游戏
- python判断队列是否为空_python队列Queue
- 2台博能传动伺服驱动器使用105报文(DSC)实现绝对齿轮同步
- iOS之Xcode断点调试
- 高等几何——射影平面2