[环境传感器] lps22hb(三)ONE_SHOT模式测试

littleshrimp   2017-12-19 15:44 楼主
One shot是一种比较节电的方式,也可以理解为按需读取
平时LPS22HB一直处于掉电模式,在需要测试时将ONE_SHOT位置1
待LPS22HB转换完成后再次进入掉电模式,转换一次可读取一个气压和温度结果
使用ONE_SHORT模式首先要将CTRL_REG1 (10h) 的ODR设置为0(默认),此时LPS22HB掉电
image001.jpg
将CTRL_REG2 (11h)寄存器的ONE_SHOT位写入1,启动单次转换,转换完成后ONE_SHOT位复位为0
image002.png
STATUS (27h)寄存器的T_DA和P_DA更新为1,提示有新数据已准备好
image003.png
通过读取PRESS_OUT_H (2Ah), PRESS_OUT_L (29h) 和 PRESS_OUT_XL (28h)得到气压数据
读取TEMP_OUT_H (2Ch)和 TEMP_OUT_L (2Bh)得到温度数据
测试代码如下:
image004.png
首先多次读取STATUS (27h)寄存器判断T_DA和P_DA是否为1,因为处于掉电模式status的值始终为0
将CTRL_REG2 (11h)寄存器的ONE_SHOT写入1,注意如果是连续读取需要同时将IF_ADD_INC写1,或者先读取寄存器内容然后再写入
循环读取STATUS (27h)寄存器判断T_DA和P_DA是否为1
经过一段时间的转换后STATUS (27h)寄存器判断T_DA和P_DA变为1,退出循环
image005.jpg
可以看到counter为31,表示执行了31次循环后数据才准备完毕
pressure和temp对应当前的气压和温度
用于测试的工程文件

lps22hb_1.rar (3.7 MB)
(下载次数: 55, 2017-12-19 15:43 上传)

虾扯蛋,蛋扯虾,虾扯蛋扯虾

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复