完善资料让更多小伙伴认识你,还能领取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个回答
|
|
没用过,帮你顶一下
|
|
|
|
你可以了解一下spi时序的问题,我感觉是你使用spi模式不对。
|
|
|
|
|
|
|
|
最直观的方法就是示波器触发着看,软件单步调试,看问题在哪,根据调试结果来调整你的程序,不然你也不知道你该怎么调整
|
|
|
|
|
|
|
|
“每次读传感器的寄存器要读两次才能读出来正确的值。”这个虽然楼主你找到问题所在了,但是你一定要注意有些片子datasheet数据格式是16bit的,有些是32bit的,还有24bit的,好好看下datasheet,就知道需要通信几次了
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1129 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1075 浏览 2 评论
2175 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1269 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1693 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 11:11 , Processed in 0.574096 second(s), Total 55, Slave 48 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号