#259 难怪你没女朋友
通讯地址错了?严格来说,单片机系统中iic总线若是要串联多片芯片通信时,最基本的命令操作流程就是发送器件地址,器件内部的操作地址和需要操作的命令,若是器件地址错了,后面的两个数据就都会是摆设。173
mpu9150这个陀螺仪是通过内部磁场相对于地磁变化的改变来感应各轴加速度的,内部可以通过iic总线直接读取因磁场变化而改变电压的ad值,ad值有四组,这四组数据名为四元数,读出这些数据后,经过软件上的滤波和欧拉角融合计算,就可以得到芯片三维空间上的xyz轴上的姿态,同时,也可以得到三围方向的加速度和角速度。
同时,也可以通过读取第五组数据,取得电子罗盘的对应地磁的方向角。
完成这一切,都需要先要找到器件地址,然后再往相关的寄存器里发送指令,随后芯片才会把数据返回回来。
但是,因为mpu9150芯片内部还自带了一个数据处理器,名字叫dmp,就是运动处理器,这个处理器能够直接帮助处理器完成需要消费大量运算资源的四元数姿态融合过程,直接给处理器返回姿三轴姿态角度、三轴加速度,三向加速度和地磁角。是一个很方便的厉害的工具。
但是,在官方的里,提供有芯片的address。不过,在还分成了dmp处理器和直接读取四元数ad值两个地址,两个地址有不同的寄存器和控制命令。蓝泽光发现,这位董晨学长用的是移植的程序,是通过dmp来读取数据的,而他的器件地址。的宏定义,却写到了mpu9150的是四元数控制地址上了。
好吧,说了这么多。蓝泽光只想表明一件事:那就是董晨学长你确实是弄错了。
“怎么可能!”他站起来一副就要和蓝泽光撕逼的样子。
不过轮无力,他这一个常年缺乏锻炼的弱鸡程序狗。怎么可能能撼动蓝泽光?
“可不可能改一改就知道了!”蓝泽光露出一副挑战的笑容,然后就在键盘上敲打了几下,把程序预编译宏命令的器件地址改掉,然后就摁下了编译按钮。
“卧槽都叫你不要改我程序了,等下子你改得回来吗?你乱弄什么%!#¥……”
后面的话蓝泽光就自动忽略了。虽然不能说人家逗比,但蓝泽光理解一个程序猿的幸苦,一般是不希望别人来乱改自己辛辛苦苦写的程序的。不过蓝泽光看到这套程序,里面有一大堆的英文注视。就早知道是移植来的。
虽然移植也需要时间,但至少不会那么辛苦……
蓝泽光鄙夷了一下,这时候程序编译就完成了。0error,9warning,虽然有警告,但程序应该能用。于是蓝泽光顺手就点击了loading,编译过可以调试的程序就下载到单片机里。复位之后,就可以在看到效果。
但是,什么效果都没有啊喂!
“……你看到了没有!你乱改是没有用的,快点改回来!”学长又是一阵激动。然后就伸手想要去拉蓝泽光的肩膀,一副暴力的模样。
“也许是学长你移植得有问题呢?”蓝泽光
「如章节缺失请退出#阅#读#模#式」
你看#到的#内#容#中#间#可#能#有#缺#失,退#出#阅#读#模#式,才可以#继#续#阅#读#全#文,或者请使用其它#浏#览#器