智能车制作

标题: 关于K60 I2c驱动MPU6050的奇葩波形 [打印本页]

作者: 半城烟沙    时间: 2014-8-24 15:32
标题: 关于K60 I2c驱动MPU6050的奇葩波形
最近在弄四轴。用到了MPU6050 但是它是I2C读取数据的用K60 的I2C读取原始数据竟然得到这样的波形,感觉我画红圈的地方他们恰好可以拼接起来变成正确的波形,出现这种情况是怎么一回事啊,求指点!!!

作者: 天翊    时间: 2014-8-24 21:30
这个跳变也太夸张了吧。
作者: Jyoun    时间: 2014-8-24 22:29
数据溢出了,超65536了
作者: chillms91    时间: 2014-8-25 08:42
感觉像是溢出了?

作者: 半城烟沙    时间: 2014-8-25 08:43
天翊 发表于 2014-8-24 21:30
这个跳变也太夸张了吧。

是啊,搞不明白是怎麽回事了

作者: 半城烟沙    时间: 2014-8-25 08:44
chillms91 发表于 2014-8-25 08:42
感觉像是溢出了?

即使我把I2C的底层文件的数据类型都改成整型的也不行啊

作者: chillms91    时间: 2014-8-25 08:45
半城烟沙 发表于 2014-8-25 08:44
即使我把I2C的底层文件的数据类型都改成整型的也不行啊

你试试把原始数据 缩小看看

作者: 半城烟沙    时间: 2014-8-25 08:46
Jyoun 发表于 2014-8-24 22:29
数据溢出了,超65536了

我改了数据类型都没有效果,那应该怎么解呢?

作者: chillms91    时间: 2014-8-25 08:46
半城烟沙 发表于 2014-8-25 08:44
即使我把I2C的底层文件的数据类型都改成整型的也不行啊

或者写一个 溢出保持最大 看看还有没有问题

作者: 半城烟沙    时间: 2014-8-25 08:50
chillms91 发表于 2014-8-25 08:45
你试试把原始数据 缩小看看

I2C采集6050的原始数据是高低8位是分别读取的,最后才是把高低位合起来具体是(H<<8)+L,你说吧原始数据缩小,不是太明白,望指点一下

作者: 机遇    时间: 2014-8-25 13:16
short int 型
作者: chillms91    时间: 2014-8-25 13:34
半城烟沙 发表于 2014-8-25 08:50
I2C采集6050的原始数据是高低8位是分别读取的,最后才是把高低位合起来具体是(H

就是说 你组合以后的值可能溢出了 跟你的变量长度有关系

作者: 半城烟沙    时间: 2014-8-26 09:04
机遇 发表于 2014-8-25 13:16
short int 型

哦,好,我试一下,谢谢

作者: 半城烟沙    时间: 2014-8-26 09:06
chillms91 发表于 2014-8-25 13:34
就是说 你组合以后的值可能溢出了 跟你的变量长度有关系

但高低位组合后我 赋给的是int的变量,而保存高低位我用的是char型的

作者: chillms91    时间: 2014-8-26 15:10
半城烟沙 发表于 2014-8-26 09:06
但高低位组合后我 赋给的是int的变量,而保存高低位我用的是char型的

那应该就是不是原始数据的问题了 你看看int以后的数据有问题吗

作者: Quixote    时间: 2014-8-26 18:03
你I2C底层怎么写的?
作者: 半城烟沙    时间: 2014-8-26 19:45
Quixote 发表于 2014-8-26 18:03
你I2C底层怎么写的?

I2C底层使用的野火的底层库

作者: 半城烟沙    时间: 2014-8-26 19:47
chillms91 发表于 2014-8-26 15:10
那应该就是不是原始数据的问题了 你看看int以后的数据有问题吗

我得到整型数据后就直接发到串口显示了,我感觉应该没什么问题了吧

作者: chillms91    时间: 2014-8-28 10:48
半城烟沙 发表于 2014-8-26 19:47
我得到整型数据后就直接发到串口显示了,我感觉应该没什么问题了吧

整形是 有符号16位吗  如果是 就有问题了 最高位是符号位 不是数据位 如果不是16位 那忽略我说的

作者: 半城烟沙    时间: 2014-9-1 17:57
哦,我知道了。谢谢




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2