#259 难怪你没女朋友(1 / 2)

 通讯地址错了?严格来说,单片机系统中iic总线若是要串联多片芯片通信时,最基本的命令操作流程就是发送器件地址,器件内部的操作地址和需要操作的命令,若是器件地址错了,后面的两个数据就都会是摆设。

pu9150这个陀螺仪是通过内部磁场相对于地磁变化的改变来感应各轴加速度的,内部可以通过iic总线直接读取因磁场变化而改变电压的ad值,ad值有四组,这四组数据名为四元数,读出这些数据后,经过软件上的滤波和欧拉角融合计算,就可以得到芯片三维空间上的xyz轴上的姿态,同时,也可以得到三围方向的加速度和角速度。

同时,也可以通过读取第五组数据,取得电子罗盘的对应地磁的方向角。

完成这一切,都需要先要找到器件地址,然后再往相关的寄存器里发送指令,随后芯片才*无*错*.s.会把数据返回回来。

但是,因为pu9150芯片内部还自带了一个数据处理器,名字叫dp,就是运动处理器,这个处理器能够直接帮助处理器完成需要消费大量运算资源的四元数姿态融合过程,直接给处理器返回姿三轴姿态角度、三轴加速度,三向加速度和地磁角。是一个很方便的厉害的工具。但是,在官方的referene里,提供有芯片的ddress。不过,在还分成了dp处理器和直接读取四元数ad值两个地址。两个地址有不同的寄存器和控制命令。蓝泽光发现,这位董晨学长用的是移植的程序,是通过dp来读取数据的。而他的器件地址,的宏定义,却写到了pu9150的是四元数控制地址上了。

好吧,说了这么多,蓝泽光只想表明一件事:那就是董晨学长你确实是弄错了。

“怎么可能!”他站起来一副就要和蓝泽光撕逼的样子。

不过轮无力,他这一个常年缺乏锻炼的弱鸡程序狗,怎么可能能撼动蓝泽光?

“可不可能改一改就知道了!”蓝泽光露出一副挑战的笑容。然后就在键盘上敲打了几下,把程序预编译宏命令的器件地址改掉,然后就摁下了编译按钮。

“卧槽都叫你不要改我程序了。等下子你改得回来吗?你乱弄什么%!#¥@……”

后面的话蓝泽光就自动忽略了。虽然不能说人家逗比,但蓝泽光理解一个程序猿的幸苦,一般是不希望别人来乱改自己辛辛苦苦写的程序的。不过蓝泽光看到这套程序,里面有一大堆的英文注视。就早知道是移植来的。虽然移植也需要时间。但至少不会那么辛苦……

蓝泽光鄙夷了一下,这时候程序编译就完成了。0errr,9rnng,虽然有警告,但程序应该能用。于是蓝泽光顺手就点击了ldng,编译过可以调试的程序就下载到单片机里。复位之后,就可以在看到效果。

但是,什么效果都没有啊喂!

“……你看到了没有!你乱改是没有用的。快点改回来!”学长又是一阵激动,然后就伸手想要去拉蓝泽光的肩膀。一副暴力的模样。

“也许是学长你移植得有问题呢?”蓝泽光耸了耸肩,动了动肩膀,把他的手拍开。

“别闹,怎么可能!”董晨学长继续伸出手,一点都不怜香惜玉的想要把蓝泽光推开。

“怎么不可能,我来看看!”蓝泽光自信满满的说,然后再一次把这位学长推开了。

“卧……这里是我的位置学妹你快点走吧!到时候我把程序弄好移植正常了我给你好不好!”看着自己拼不过蓝泽光的样子,这位障崩溃般的叹着。

“反正我也要研究,我先来看看。”蓝泽光白了他一眼,然后就撑着桌子,聚精会神盯着那位学长的屏幕。学长就快要发飙了,又一次不知好歹的拉住了蓝泽光的肩膀,说:“喂!你叫蓝泽光是吧?不少字别以为你是女人我就不敢打你啊!”

“……”对于战斗力不足半只鹅的er程序猿,蓝泽光根本就不怕他。她一边盯着屏幕找bg,一边调侃着这位学长,说:“学长啊,你总是这样难怪找不到女朋友。都说程序猿没有女朋友,是不是就是因为你这怪脾气呢?如果再加上er的身份,那就更没有女朋友了!”

这不,蓝泽光瞟了瞟这位学长在fn上看的视频,是vn♂的f乐谱,他没有开外放,但估计耳机里的声音会很愉悦。

都说,er没有女朋友的事实会给诸位er会心一击,董晨学长也是如此。他被蓝泽光这么一吐槽,立刻就想到了什么似的扶住了额头。他这是在反省?不,没有女朋友就是没有女朋友,他才不会反省什么,死脑筋继续爆发。

“擦!谁要你管了!”

“如果不是学长你把9150拿走了我才不管你呢!”蓝泽光拢了拢,耳边的头发,然后就在那九个程序警报当中,找到了一些倪端。

在程序员的世界里,不同变量类型可能会让数据引起冲突。虽然有一些数据能够强制转换,但这可能会有一些灵异的情况。比如在某些编译器里,8和r是同样一个变量,但有时候,却又有点不同。

董晨学长的9个警告就出现在这里,融合数据的总线指针用了两种相似,但却又表示不同的变量。蓝泽光就拉出键盘把他改出来。

“你干嘛你干嘛!”看到蓝泽光又要动手动脚的,活该米女朋友的董晨学长又急了。

“我帮你把8改成r让警告没有你还不感谢我?”改完,编译,依旧有警告,不过这些警告的内容是定义的变量没有被使用,这是无关紧要的事情。蓝泽光再编译,再次载入单片机,但是调试软件上依旧没有数据输出。