Air302 i2c.readSHT30拔掉传感器时会一直卡在读取那边,导致后面代码无法执行。
最好可以设置超时。
i2c.setup(0)
local re, H, T = i2c.readSHT30(0)
if re then
wd = T / 10
sd = H / 10
else
log.info("sht30 error")
end
i2c.close(0)
[2021-09-07 22:06:54.308] I/luat.main LuatOS@ec616 core V0007 bsp V0007
[2021-09-07 22:06:54.316] I/luat.main ROM Build: Sep 1 2021 22:44:41
[2021-09-07 22:06:54.316] D/luat.vfs register fs air302
[2021-09-07 22:06:54.316] D/luat.vfs register fs luadb
[2021-09-07 22:06:54.316] D/luat.vfs mount air302
[2021-09-07 22:06:54.316] D/luat.vfs mount luadb /luadb/
[2021-09-07 22:06:54.316] D/luat.fs.LFS luat_fs_fopen /update.bin rb 00000000
[2021-09-07 22:06:54.341] D/luat.fs.LFS luat_fs_fopen /rollback_mark rb 00000000
[2021-09-07 22:06:54.341] D/luat.main boot luavm 65528 2576 2576
[2021-09-07 22:06:54.341] D/luat.main boot sys 39336 8632 8800
[2021-09-07 22:06:54.341] D/luat.main loadlibs luavm 65528 7272 7272
[2021-09-07 22:06:54.341] D/luat.main loadlibs sys 39336 8544 9008
[2021-09-07 22:06:54.341] D/luat.fs.LFS luat_fs_fopen /main.luac r 00039810
[2021-09-07 22:06:54.341] D/luat.fs.LFS luat_fs_fopen /main.luac r 00039810
[2021-09-07 22:06:54.341] D/luat.fs.LFS luat_fs_fopen /main.luac rb 00039810
[2021-09-07 22:06:54.366] D/luat.fs.LFS luat_fs_fopen /sys.luac r 00039810
[2021-09-07 22:06:54.366] D/luat.fs.LFS luat_fs_fopen /sys.luac r 00039810
[2021-09-07 22:06:54.366] D/luat.fs.LFS luat_fs_fopen /sys.luac rb 00039810
[2021-09-07 22:06:54.374] I/user.NBWD_PSM 2.0.0 1005
[2021-09-07 22:06:54.374] D/luat.i2c i2c0 setup complete
软件i2c读取SHT30传感器数据会不准确。 有时准确有时不准确。
应该是温度26.5 湿度66.3,读取出来温度是130,湿度100
local softI2C = i2c.createSoft(10, 8, i2c.FAST)
i2c.send(softI2C, 0x44, string.char(0x2C, 0x06))
sys.wait(5) -- 5ms
local data = i2c.recv(softI2C, 0x44, 6)
if data ~= nil and #data == 6 then
local _,tval,ccrc,hval,hcrc = pack.unpack(data, ">HbHb")
wd = ((tval * 175) / 65535.0) - 45
sd = ((hval * 100) / 65535.0)
end
日志:
[2021-09-08 20:32:34.887] ECRDY
[2021-09-08 20:32:34.887] I/luat.main LuatOS@ec616 core V0007 bsp V0007
[2021-09-08 20:32:34.927] I/luat.main ROM Build: Sep 1 2021 22:44:41
[2021-09-08 20:32:34.927] D/luat.vfs register fs air302
[2021-09-08 20:32:34.927] D/luat.vfs register fs luadb
[2021-09-08 20:32:34.927] D/luat.vfs mount air302
[2021-09-08 20:32:34.927] D/luat.vfs mount luadb /luadb/
[2021-09-08 20:32:34.927] D/luat.fs.LFS luat_fs_fopen /update.bin rb 00000000
[2021-09-08 20:32:34.927] D/luat.fs.LFS luat_fs_fopen /rollback_mark rb 00000000
[2021-09-08 20:32:34.927] D/luat.main boot luavm 65528 2576 2576
[2021-09-08 20:32:34.927] D/luat.main boot sys 39336 9448 9616
[2021-09-08 20:32:34.927] D/luat.main loadlibs luavm 65528 7240 7240
[2021-09-08 20:32:34.927] D/luat.main loadlibs sys 39336 9448 9616
[2021-09-08 20:32:34.927] D/luat.fs.LFS luat_fs_fopen /main.luac r 00039B58
[2021-09-08 20:32:34.927] D/luat.fs.LFS luat_fs_fopen /main.luac r 00039B58
[2021-09-08 20:32:34.927] D/luat.fs.LFS luat_fs_fopen /main.luac rb 00039B58
[2021-09-08 20:32:34.927] D/luat.fs.LFS luat_fs_fopen /sys.luac r 00039B58
[2021-09-08 20:32:34.927] D/luat.fs.LFS luat_fs_fopen /sys.luac r 00039B58
[2021-09-08 20:32:34.927] D/luat.fs.LFS luat_fs_fopen /sys.luac rb 00039B58
[2021-09-08 20:32:35.030] I/user.NBWD_PSM 2.0.2 1005
[2021-09-08 20:32:35.093] I/luat.nbiot Level FlyMode, ret=0
[2021-09-08 20:32:35.156] I/user.sht30 130.0000 50.87816 3.280000
[2021-09-08 20:32:35.406] D/luat.nbiot +CPIN: READY
[2021-09-08 20:32:35.426] I/luat.nbiot SIM ready(imsi=460080716801358)
[2021-09-08 20:32:35.426] I/luat.nbiot +CEREG: 1,2,0000,00000000,9
[2021-09-08 20:32:36.773] I/luat.pm poweron: Power/Reset
[2021-09-08 20:32:36.792]
[2021-09-08 20:32:36.792] ECRDY
[2021-09-08 20:32:36.792] I/luat.main LuatOS@ec616 core V0007 bsp V0007
[2021-09-08 20:32:36.834] I/luat.main ROM Build: Sep 1 2021 22:44:41
[2021-09-08 20:32:36.834] D/luat.vfs register fs air302
[2021-09-08 20:32:36.834] D/luat.vfs register fs luadb
[2021-09-08 20:32:36.834] D/luat.vfs mount air302
[2021-09-08 20:32:36.834] D/luat.vfs mount luadb /luadb/
[2021-09-08 20:32:36.834] D/luat.fs.LFS luat_fs_fopen /update.bin rb 00000000
[2021-09-08 20:32:36.834] D/luat.fs.LFS luat_fs_fopen /rollback_mark rb 00000000
[2021-09-08 20:32:36.834] D/luat.main boot luavm 65528 2576 2576
[2021-09-08 20:32:36.834] D/luat.main boot sys 39336 9448 9616
[2021-09-08 20:32:36.834] D/luat.main loadlibs luavm 65528 7240 7240
[2021-09-08 20:32:36.834] D/luat.main loadlibs sys 39336 9448 9616
[2021-09-08 20:32:36.834] D/luat.fs.LFS luat_fs_fopen /main.luac r 00039B58
[2021-09-08 20:32:36.834] D/luat.fs.LFS luat_fs_fopen /main.luac r 00039B58
[2021-09-08 20:32:36.834] D/luat.fs.LFS luat_fs_fopen /main.luac rb 00039B58
[2021-09-08 20:32:36.834] D/luat.fs.LFS luat_fs_fopen /sys.luac r 00039B58
[2021-09-08 20:32:36.834] D/luat.fs.LFS luat_fs_fopen /sys.luac r 00039B58
[2021-09-08 20:32:36.834] D/luat.fs.LFS luat_fs_fopen /sys.luac rb 00039B58
[2021-09-08 20:32:36.940] I/user.NBWD_PSM 2.0.2 1005
[2021-09-08 20:32:36.993] I/luat.nbiot Level FlyMode, ret=0
[2021-09-08 20:32:37.058] I/user.sht30 129.9920 100.00000 3.280000
[2021-09-08 20:32:37.307] D/luat.nbiot +CPIN: READY
[2021-09-08 20:32:37.326] I/luat.nbiot SIM ready(imsi=460080716801358)
[2021-09-08 20:32:37.326] I/luat.nbiot +CEREG: 1,2,0000,00000000,9
[2021-09-08 20:32:53.989] I/luat.pm poweron: Power/Reset
[2021-09-08 20:32:54.011]
[2021-09-08 20:32:54.011] ECRDY
[2021-09-08 20:32:54.011] I/luat.main LuatOS@ec616 core V0007 bsp V0007
[2021-09-08 20:32:54.011] I/luat.main ROM Build: Sep 1 2021 22:44:41
[2021-09-08 20:32:54.011] D/luat.vfs register fs air302
[2021-09-08 20:32:54.079] D/luat.vfs register fs luadb
[2021-09-08 20:32:54.079] D/luat.vfs mount air302
[2021-09-08 20:32:54.079] D/luat.vfs mount luadb /luadb/
[2021-09-08 20:32:54.079] D/luat.fs.LFS luat_fs_fopen /update.bin rb 00000000
[2021-09-08 20:32:54.079] D/luat.fs.LFS luat_fs_fopen /rollback_mark rb 00000000
[2021-09-08 20:32:54.079] D/luat.main boot luavm 65528 2576 2576
[2021-09-08 20:32:54.079] D/luat.main boot sys 39336 9448 9616
[2021-09-08 20:32:54.079] D/luat.main loadlibs luavm 65528 7240 7240
[2021-09-08 20:32:54.079] D/luat.main loadlibs sys 39336 9448 9616
[2021-09-08 20:32:54.079] D/luat.fs.LFS luat_fs_fopen /main.luac r 00039B58
[2021-09-08 20:32:54.079] D/luat.fs.LFS luat_fs_fopen /main.luac r 00039B58
[2021-09-08 20:32:54.079] D/luat.fs.LFS luat_fs_fopen /main.luac rb 00039B58
[2021-09-08 20:32:54.079] D/luat.fs.LFS luat_fs_fopen /sys.luac r 00039B58
[2021-09-08 20:32:54.079] D/luat.fs.LFS luat_fs_fopen /sys.luac r 00039B58
[2021-09-08 20:32:54.079] D/luat.fs.LFS luat_fs_fopen /sys.luac rb 00039B58
[2021-09-08 20:32:54.079] I/user.NBWD_PSM 2.0.2 1005
[2021-09-08 20:32:54.213] I/luat.nbiot Level FlyMode, ret=0
[2021-09-08 20:32:54.276] I/user.sht30 129.2042 100.00000 3.280000
[2021-09-08 20:32:54.528] D/luat.nbiot +CPIN: READY
[2021-09-08 20:32:54.528] I/luat.nbiot SIM ready(imsi=460080716801358)
[2021-09-08 20:32:54.565] I/luat.nbiot +CEREG: 1,2,0000,00000000,9
[2021-09-08 20:32:56.780] I/luat.pm poweron: Power/Reset
[2021-09-08 20:32:56.797]
[2021-09-08 20:32:56.797] ECRDY
[2021-09-08 20:32:56.797] I/luat.main LuatOS@ec616 core V0007 bsp V0007
[2021-09-08 20:32:56.843] I/luat.main ROM Build: Sep 1 2021 22:44:41
[2021-09-08 20:32:56.843] D/luat.vfs register fs air302
[2021-09-08 20:32:56.843] D/luat.vfs register fs luadb
[2021-09-08 20:32:56.843] D/luat.vfs mount air302
[2021-09-08 20:32:56.843] D/luat.vfs mount luadb /luadb/
[2021-09-08 20:32:56.843] D/luat.fs.LFS luat_fs_fopen /update.bin rb 00000000
[2021-09-08 20:32:56.843] D/luat.fs.LFS luat_fs_fopen /rollback_mark rb 00000000
[2021-09-08 20:32:56.843] D/luat.main boot luavm 65528 2576 2576
[2021-09-08 20:32:56.843] D/luat.main boot sys 39336 9448 9616
[2021-09-08 20:32:56.843] D/luat.main loadlibs luavm 65528 7240 7240
[2021-09-08 20:32:56.843] D/luat.main loadlibs sys 39336 9448 9616
[2021-09-08 20:32:56.843] D/luat.fs.LFS luat_fs_fopen /main.luac r 00039B58
[2021-09-08 20:32:56.843] D/luat.fs.LFS luat_fs_fopen /main.luac r 00039B58
[2021-09-08 20:32:56.843] D/luat.fs.LFS luat_fs_fopen /main.luac rb 00039B58
[2021-09-08 20:32:56.843] D/luat.fs.LFS luat_fs_fopen /sys.luac r 00039B58
[2021-09-08 20:32:56.843] D/luat.fs.LFS luat_fs_fopen /sys.luac r 00039B58
[2021-09-08 20:32:56.843] D/luat.fs.LFS luat_fs_fopen /sys.luac rb 00039B58
[2021-09-08 20:32:56.951] I/user.NBWD_PSM 2.0.2 1005
[2021-09-08 20:32:56.999] I/luat.nbiot Level FlyMode, ret=0
[2021-09-08 20:32:57.063] I/user.sht30 129.9813 100.00000 3.280000
[2021-09-08 20:32:57.315] D/luat.nbiot +CPIN: READY
[2021-09-08 20:32:57.334] I/luat.nbiot SIM ready(imsi=460080716801358)
[2021-09-08 20:32:57.334] I/luat.nbiot +CEREG: 1,2,0000,00000000,9
[2021-09-08 20:32:59.046] I/luat.pm poweron: Power/Reset
[2021-09-08 20:32:59.065]
[2021-09-08 20:32:59.065] ECRDY
[2021-09-08 20:32:59.065] I/luat.main LuatOS@ec616 core V0007 bsp V0007
[2021-09-08 20:32:59.088] I/luat.main ROM Build: Sep 1 2021 22:44:41
[2021-09-08 20:32:59.088] D/luat.vfs register fs air302
[2021-09-08 20:32:59.088] D/luat.vfs register fs luadb
[2021-09-08 20:32:59.088] D/luat.vfs mount air302
[2021-09-08 20:32:59.088] D/luat.vfs mount luadb /luadb/
[2021-09-08 20:32:59.088] D/luat.fs.LFS luat_fs_fopen /update.bin rb 00000000
[2021-09-08 20:32:59.088] D/luat.fs.LFS luat_fs_fopen /rollback_mark rb 00000000
[2021-09-08 20:32:59.088] D/luat.main boot luavm 65528 2576 2576
[2021-09-08 20:32:59.088] D/luat.main boot sys 39336 9448 9616
[2021-09-08 20:32:59.088] D/luat.main loadlibs luavm 65528 7240 7240
[2021-09-08 20:32:59.088] D/luat.main loadlibs sys 39336 9448 9616
[2021-09-08 20:32:59.088] D/luat.fs.LFS luat_fs_fopen /main.luac r 00039B58
[2021-09-08 20:32:59.088] D/luat.fs.LFS luat_fs_fopen /main.luac r 00039B58
[2021-09-08 20:32:59.088] D/luat.fs.LFS luat_fs_fopen /main.luac rb 00039B58
[2021-09-08 20:32:59.170] D/luat.fs.LFS luat_fs_fopen /sys.luac r 00039B58
[2021-09-08 20:32:59.170] D/luat.fs.LFS luat_fs_fopen /sys.luac r 00039B58
[2021-09-08 20:32:59.170] D/luat.fs.LFS luat_fs_fopen /sys.luac rb 00039B58
[2021-09-08 20:32:59.170] I/user.NBWD_PSM 2.0.2 1005
[2021-09-08 20:32:59.269] I/luat.nbiot Level FlyMode, ret=0
[2021-09-08 20:32:59.332] I/user.sht30 130.0000 68.74952 3.280000
[2021-09-08 20:32:59.582] D/luat.nbiot +CPIN: READY
[2021-09-08 20:32:59.604] I/luat.nbiot SIM ready(imsi=460080716801358)
[2021-09-08 20:32:59.604] I/luat.nbiot +CEREG: 1,2,0000,00000000,9
[2021-09-08 20:33:01.659] I/luat.pm poweron: Power/Reset
[2021-09-08 20:33:01.675]
[2021-09-08 20:33:01.675] ECRDY
[2021-09-08 20:33:01.675] I/luat.main LuatOS@ec616 core V0007 bsp V0007
[2021-09-08 20:33:01.703] I/luat.main ROM Build: Sep 1 2021 22:44:41
[2021-09-08 20:33:01.703] D/luat.vfs register fs air302
[2021-09-08 20:33:01.703] D/luat.vfs register fs luadb
[2021-09-08 20:33:01.703] D/luat.vfs mount air302
[2021-09-08 20:33:01.703] D/luat.vfs mount luadb /luadb/
[2021-09-08 20:33:01.703] D/luat.fs.LFS luat_fs_fopen /update.bin rb 00000000
[2021-09-08 20:33:01.703] D/luat.fs.LFS luat_fs_fopen /rollback_mark rb 00000000
[2021-09-08 20:33:01.703] D/luat.main boot luavm 65528 2576 2576
[2021-09-08 20:33:01.703] D/luat.main boot sys 39336 9448 9616
[2021-09-08 20:33:01.703] D/luat.main loadlibs luavm 65528 7240 7240
[2021-09-08 20:33:01.703] D/luat.main loadlibs sys 39336 9448 9616
[2021-09-08 20:33:01.703] D/luat.fs.LFS luat_fs_fopen /main.luac r 00039B58
[2021-09-08 20:33:01.703] D/luat.fs.LFS luat_fs_fopen /main.luac r 00039B58
[2021-09-08 20:33:01.703] D/luat.fs.LFS luat_fs_fopen /main.luac rb 00039B58
[2021-09-08 20:33:01.780] D/luat.fs.LFS luat_fs_fopen /sys.luac r 00039B58
[2021-09-08 20:33:01.780] D/luat.fs.LFS luat_fs_fopen /sys.luac r 00039B58
[2021-09-08 20:33:01.780] D/luat.fs.LFS luat_fs_fopen /sys.luac rb 00039B58
[2021-09-08 20:33:01.780] I/user.NBWD_PSM 2.0.2 1005
[2021-09-08 20:33:01.880] I/luat.nbiot Level FlyMode, ret=0
[2021-09-08 20:33:01.944] I/user.sht30 130.0000 37.49905 3.280000
[2021-09-08 20:33:02.193] D/luat.nbiot +CPIN: READY
[2021-09-08 20:33:02.213] I/luat.nbiot SIM ready(imsi=460080716801358)
[2021-09-08 20:33:02.213] I/luat.nbiot +CEREG: 1,2,0000,00000000,9
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
@晨旭 目前观察,使用软i2c + readSHT30的API
local softi2c = i2c.createSoft(10,8,0x44)
local re, humi, temp = i2c.readSHT30(softi2c)
log.info("sht302", re, humi, temp)
-- 获得输出
-- [2021-09-10 11:45:28.277] I/user.sht302 true 1000 1300
当前现象是获取应答采样的时候,结果全部是FF
不确定是不是电平没有拉低还是别的原因
测试用SHT30
https://detail.tmall.com/item.htm?id=636612978310
Air302 直接I2C连接,没有额外上拉
SHT30本身正常,使用硬件I2C可以正常读取数据
复现用代码
PROJECT = "sht30demo"
VERSION = "1.0.0"
local sys = require "sys"
sys.taskInit(function()
local softi2c = i2c.createSoft(10,8,0x44)
while true do
local re, humi, temp = i2c.readSHT30(softi2c)
log.info("sht302", re, humi, temp)
sys.wait(2000)
end
end)
sys.run()
哦哦 本身API 有些问题,我再继续调研一下,然后报告
已经获得预期结果, 过会儿我将我的微调提交一个简易PR
可能文档有些陈旧了:
local softi2c = i2c.createSoft(10,8,0x44)
该方法的第三个参数为 addr ,不是高速低速模式
简易提供一个可选参数,作为“询问/应答”间的等待间隔,默认为10ms这种
谢谢
登录 后才可以发表评论