关于加速度传感器MMA7455的I2C通讯

全部回答2
默认 最新
  • 给你一个思路,1.使用单片机通过usart与pc机通讯,pc机上下载一个串口调试助手就可以。2.使用加速度传感器与单片机相连,成功配置传感器的寄存器后,实时读取加速度值,将其值通过usart发送至pc。传感器t宝上是有模块卖的。3.将传感器固定在自己身上,最好能一次固定,之后就不要再改变位置以及角度,否则之后的算法就要重新校对了。4.走路,走一次去看一次pc机上发来的串口数据,每组数据都是有xyz轴三个一起的,看它们在一个行进周期内是如何变化的。5.根据xyz三个量的变化过程,编写算法,使得如果再有相似,记住,这里是相似不是相同,你的算法编写的时候要留有一定的阈值,因为不可能每一步都是一样的,这个调试的过程一定很麻烦,因为阈值小了,单片机会把行进时额外的身体抖动也算在里面,如果阈值太大,则可能你需要跑起来才能算是记步。建议在算法编写时,把时间这一变量也写在里面,也就是xyzt四个变量的算法。6.在你完成了以上工作之后,恭喜你,你已经做好这个设计了,你要问了,还有lcd呢?只能说lcd是最后才加上去的,因为太好解决了,lcd的源代码网上到处都是。
    0 点赞
  • I2C的通信都是遵守I2C通信协议的,跟使用什么芯片没关系,有差别的地方在于有些芯片用单字节的读写,有些用多字节的读写,建议去看I2C通信协议,以不变应万变。单字节写:把 MMA7455 7位的设备地址+第8位 表示写,写入,等待处理从机的ACK,再写入8位寄存器地址,等待处理从机的ACK,再写入8位数据,等待处理从机的ACK,结束单字节读:把 MMA7455 7位的设备地址+第8位 表示写,写入,等待处理从机的ACK,再写入8位寄存器地址,等待处理从机的ACK,再写入7位的设备地址+第8位 表示读, 接着读取8位数据,等待处理从机的ACK,结束如果从机的寄存器地址是 16位的,则连续分两次发送,一次发8位;如果从 从机寄存器读到的数据是16位,则连续读2次 8位。 这个要看芯片手册这个芯片是不是多字节读取的,还可以结合I2C 读写驱动里面是怎么写的,看读取完放在一个多大的数组
    0 点赞

没有更多内容了

返回顶部
产品求购 求购