你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 2359|回复: 1

LIS3DH FIFO读取数据为空

[复制链接]

6

主题

18

回帖

0

蝴蝶豆

中级会员

最后登录
2018-6-12
发表于 2016-6-17 10:00:10 | 显示全部楼层 |阅读模式
利用lis3dh 的驱动做的LIS3DH初始化函数如下:
LIS3DH_SetODR(LIS3DH_ODR_50Hz);
LIS3DH_SetMode(LIS3DH_NORMAL);
LIS3DH_SetFullScale(LIS3DH_FULLSCALE_2);
LIS3DH_SetAxis(LIS3DH_X_ENABLE | LIS3DH_Y_ENABLE | LIS3DH_Z_ENABLE);
LIS3DH_SetBDU(MEMS_ENABLE);
LIS3DH_FIFOModeEnable(LIS3DH_FIFO_MODE);

然后利用设计FIFO读取数据的函数;
#define ACC_DATA_LEN 32
AxesRaw_t accData[ACC_DATA_LEN];
void LIS3DH_GetFifoData(u8_t * val)
{
        u8_t index = 0;
        u8_t fss = 0;
        u8_t ovrun;

    LIS3DH_GetFifoSourceBit(LIS3DH_FIFO_SRC_OVRUN, &ovrun);
    /* Read transaction */
    LIS3DH_GetFifoSourceFSS(&fss);//这里打印函数内的value是零

    if(MEMS_SET == ovrun)//MEMS_SET = 1
    {
        fss = ACC_DATA_LEN;
    }
    fss = (fss >> 2) << 2;

    Report("FSS len %d, ovrun:%d\n\r", fss, ovrun);// 这里打印fss 的值为零,ovrun也是零

    for(index = 0; index < fss; index ++)
    {
        //ASSERT(LIS3DH_GetFifoSourceFSS(val));
        LIS3DH_GetAccAxesRaw(accData+index);//这里是自己封装的读取XYZ轴的原始数据,单独使用验证过正确;
    }
    *val = fss;
    LIS3DH_FIFOModeEnable(LIS3DH_FIFO_BYPASS_MODE);//清空FIFO数据,以备再次写入数据。
    LIS3DH_FIFOModeEnable(LIS3DH_FIFO_MODE);

}

为什么以上函数中,从寄存器FIFO_SRC_REG(2FH)读取的fss值一直是零呢?是不是少初始化了什么?
help,急急急!

回复

使用道具 举报

0

主题

1

回帖

0

蝴蝶豆

新手上路

最后登录
2019-9-17
发表于 2017-10-17 23:36:52 | 显示全部楼层
我现在也遇到这个问题了 lz当时怎么解决的 好着急
回复 支持 反对

使用道具 举报

关于 意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
13245底部标题123相同标题
12底部标题123相同标题
33333底部标题123相同序号
3435底部标题-无链接
关注我们
st-img 微信公众号
st-img 手机版