完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近做陀螺加速度芯片数据采集驱动编写,遇到一个奇怪的问题,请大家帮忙分析一下。
起初用的传感器芯片型号是BMI055,单片机STM32F405,使用硬件spi,读写数据均正常。 后将传感器芯片型号换成BMI088,单片机和SPI驱动包括引脚等都不变,仍是硬件spi,发现每次读传感器的寄存器要读两次才能读出来正确的值。 以读取ACC相关寄存器为例,以下为读取寄存器时序: 读寄存器 应读出结果 实际结果 0x00 0x1E 0x00 0x00 0x1E 0x1E 0x41 0x00 0x1E 0x41 0x00 0x00 0x58 0x04 0x00 0x41 0x00 0x04 0x41 0x00 0x00 根据上表,基本上就是每次读的实际结果都是上一次应该读出的结果,也就是滞后一个读取周期。看传感器手册,055和088在通讯配置上并没有什么明显不同的地方。 不知道大家有没有遇到过这个问题的,麻烦指导一下这个问题可能是什么原因造成的,感谢! |
|
相关推荐
7个回答
|
|
是不是速度太快了
|
|
|
|
发送 写addr和reg 两个byte 之后要等50ms再去发送 读addr 之后的byte
|
|
|
|
速度是多少?看下读写是否繁忙?
|
|
|
|
阅读下芯片的资料,看看时序或速率是否有问题。
|
|
|
|
很有可能速度快了
|
|
|
|
看芯片资料吧,用过一个AS5048磁角度传感器,资料里就写明了读取的是前一命令的结果,所以用起来觉得很别扭
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2136 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1970 浏览 3 评论
4566 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2116 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2629 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 21:56 , Processed in 0.688570 second(s), Total 85, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号