打印
[其他ST产品]

LIS3DH IIC 多字节连续读取寄存器 BUG 问题求助

[复制链接]
1996|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 生来孤独 于 2017-11-30 14:39 编辑

描述:调试 ST 的三轴加速度传感器 LIS3DH 。采用 STM8L152 硬件 IIC 通信。单字节读写均正确,但多字节连续读取数据错误 ,奇怪
IIC 多字节读写描述

单字节读取 WhoAmI 寄存器 没问题。然后写配置寄存器 REG0-6全都正确如下
截图只截取了一部分,写完配置寄存器之后又读出来验证了一下,单字节读出来全部正确,时序图不再上传。但是连续读取出来数据确有问题,如下图。
按照程序,这里应该读出来是 0x4f,0x02,0x03,0x04,0x00,0x00. 但是实际上读出来的时间都是0x4f,好像寄存器地址没有自动加一,单看时序也没有错误,不知是硬件问题还是我某些配置错误。部分程序如下:

        bsp_iicWrite(LIS3DH_ADDR, LIS3DH_CTRL_REG0, 0x10);               
        bsp_iicWrite(LIS3DH_ADDR, LIS3DH_CTRL_REG1, 0x4f);               
        bsp_iicWrite(LIS3DH_ADDR, LIS3DH_CTRL_REG2, 0x02);
        bsp_iicWrite(LIS3DH_ADDR, LIS3DH_CTRL_REG3, 0x03);
        bsp_iicWrite(LIS3DH_ADDR, LIS3DH_CTRL_REG4, 0x04);        
        bsp_iicWrite(LIS3DH_ADDR, LIS3DH_CTRL_REG5, 0x00);
        bsp_iicWrite(LIS3DH_ADDR, LIS3DH_CTRL_REG6, 0x00);    //写进去,其他寄存器没有设置


        bsp_iicMultipleRead(LIS3DH_ADDR, LIS3DH_CTRL_REG1, Data, 6);   //读出来

最后上传两份官网的最新资料。

en.LIS3DH Datasheet - production data.pdf

1.02 MB

zh.应用笔记.pdf

1.12 MB

沙发
nobleliom| | 2017-11-30 20:06 | 只看该作者
连续读写的指令是否正确呢?仔细对比数据手册看看。

使用特权

评论回复
板凳
生来孤独|  楼主 | 2017-12-2 10:18 | 只看该作者
最后,自己换成SPI通信了 ,但问题任然没有解决。

使用特权

评论回复
地板
liuwanwei| | 2017-12-2 11:40 | 只看该作者
连续读取的话,地址寄存器最高位要设置为1,你有设置吗?

使用特权

评论回复
5
生来孤独|  楼主 | 2018-1-23 10:23 | 只看该作者
liuwanwei 发表于 2017-12-2 11:40
连续读取的话,地址寄存器最高位要设置为1,你有设置吗?

谢谢回复,有设置为1,表示为读取

使用特权

评论回复
6
kkzz| | 2018-1-23 14:54 | 只看该作者
这个ST提供的有代码

使用特权

评论回复
7
minzisc| | 2018-1-23 14:55 | 只看该作者
没做过多个字节的连续读取。

使用特权

评论回复
8
xiaoyaodz| | 2018-1-23 14:55 | 只看该作者
9
kkzz| | 2018-1-23 15:09 | 只看该作者
使用STM32F3上的代码能够使用。

使用特权

评论回复
10
minzisc| | 2018-1-23 15:09 | 只看该作者
正常不都是字符的单个读取吗?

使用特权

评论回复
11
xiaoyaodz| | 2018-1-23 15:09 | 只看该作者
LIS3DH的驱动,应用接口

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

7

帖子

1

粉丝