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

LIS3DH FIFO读取数据为空

[复制链接]
爱吃炒面的小颜颜 提问时间:2016-6-17 10:00 /
利用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,急急急!

收藏 评论1 发布时间:2016-6-17 10:00

举报

1个回答
275288741@qq.co 回答时间:2017-10-17 23:36:52
我现在也遇到这个问题了 lz当时怎么解决的 好着急

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版