通讯地址错了?严格来说,单片机系统中iic总线若是要串联多片芯片通信时,最基本的命令操作流程就是发送器件地址,器件内部的操作地址和需要操作的命令,若是器件地址错了,后面的两个数据就都会是摆设。
mpu9150这个陀螺仪是通过内部磁场相对于地磁变化的改变来感应各轴加速度的,内部可以通过iic总线直接读取因磁场变化而改变电压的ad值,ad值有四组,这四组数据名为四元数,读出这些数据后,经过软件上的滤波和欧拉角融合计算,就可以得到芯片三维空间上的xyz轴上的姿态,同时,也可以得到三围方向的加速度和角速度。
同时,也可以通过读取第五组数据,取得电子罗盘的对应地磁的方向角。
完成这一切,都需要先要找到器件地址,然后再往相关的寄存器里发送指令,随后芯片才会把数据返回回来。
但是,因为mpu9150芯片内部还自带了一个数据处理器,名字叫dmp,就是运动处理器,这个处理器能够直接帮助处理器完成需要消费大量运算资源的四元数姿态融合过程,直接给处理器返回姿三轴姿态角度、三轴加速度,三向加速度和地磁角。是一个很方便的厉害的工具。
但是,在官方的里,提供有芯片的address。不过,在还分成了dmp处理器和直接读取四元数ad值两个地址,两个地址有不同的寄存器和控制命令。蓝泽光发现,这位董晨学长用的是移植的程序,是通过dmp来读取数据的,而他的器件地址。的宏定义,却写到了mpu9150的是四元数控制地址上了。
好吧,说了这么多。蓝泽光只想表明一件事:那就是董晨学长你确实是弄错了。
“怎么可能!”他站起来一副就要和蓝泽光撕逼的样子。
不过轮无力,他这一个常年缺乏锻炼的弱鸡程序狗。怎么可能能撼动蓝泽光?
“可不可能改一改就知道了!”蓝泽光露出一副挑战的笑容,然后就在键盘上敲打了几下,把程序预编译宏命令的器件地址改掉,然后就摁下了编译按钮。
“卧槽都叫你不要改我程序了,等下子你改得回来吗?你乱弄什么%!#¥@……”
后面的话蓝泽光就自动忽略了。虽然不能说人家逗比,但蓝泽光理解一个程序猿的幸苦,一般是不希望别人来乱改自己辛辛苦苦写的程序的。不过蓝泽光看到这套程序,里面有一大堆的英文注视。就早知道是移植来的。
虽然移植也需要时间,但至少不会那么辛苦……
蓝泽光鄙夷了一下,这时候程序编译就完成了。0error,9warning,虽然有警告,但程序应该能用。于是蓝泽光顺手就点击了loading,编译过可以调试的程序就下载到单片机里。复位之后,就可以在看到效果。
但是,什么效果都没有啊喂!
“……你看到了没有!你乱改是没有用的,快点改回来!”学长又是一阵激动。然后就伸手想要去拉蓝泽光的肩膀,一副暴力的模样。
“也许是学长你移植得有问题呢?”蓝泽光耸了耸肩,动了动肩膀。把他的手拍开。
“别闹,怎么可能!”董晨学长继续伸出手,一点都不怜香惜玉的想要把蓝泽光推开。
“怎么不可能,我来看看!”蓝泽光自信满满的说,然后再一次把这位学长推开了。
“卧……这里是我的位置学妹你快点走吧!到时候我把程序弄好移植正常了我给你好不好!”看着自己拼不过蓝泽光的样子,这位障崩溃般的叹着。
“反正我也要研究,我先来看看。”蓝泽光白了他一眼,然后就撑着桌子,聚精会神盯着那位学长的屏幕。学长就快要发飙了。又一次不知好歹的拉住了蓝泽光的肩膀,说:“喂!你叫蓝泽光是吧?别以为你是女人我就不敢打你啊!”
“……”对于战斗力不足半只鹅的acer程序猿。蓝泽光根本就不怕他。她一边盯着屏幕找bug,一边调侃着这位学长。说:“学长啊,你总是这样难怪找不到女朋友。都说程序猿没有女朋友,是不是就是因为你这怪脾气呢?如果再加上acer的身份,那就更没有女朋友了!”
这不,蓝泽光瞟了瞟这位学长在acfun上看的视频,是van♂的fa乐谱,他没有开外放,但估计耳机里的声音会很愉悦。
都说,acer没有女朋友的事实会给诸位acer会心一击,董晨学长也是如此。他被蓝泽光这么一吐槽,立刻就想到了什么似的扶住了额头。他这是在反省?不,没有女朋友就是没有女朋友,他才不会反省什么,死脑筋继续爆发。
“擦!谁要你管了!”
“如果不是学长你把9150拿走了我才不管你呢!”蓝泽光拢了拢,耳边的头发,然后就在那九个程序警报当中,找到了一些倪端。
在程序员的世界里,不同变量类型可能会让数据引起冲突。虽然有一些数据能够强制转换,但这可能会有一些灵异的情况。比如在某些编译器里,u8和