完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,我试图用 LUA 脚本的工作部分制作一个模块,出现错误:
SHT21_usage.lua:6: attempt to call field 'Init' 代码:全选 local moduleName = ... local M = {} _G[moduleName] = M local pinSDA = 6 local pinSCL = 7 local SHTAddr = 0x40 local id = 0 local eTempHoldCmd = 0xE3 local eRHumidityHoldCmd = 0xE5 local eTempNoHoldCmd = 0xF3 local eRHumidityNoHoldCmd = 0xF5 function M.Init(Ide,SDA,SCL) return i2c.setup(Ide, pinSDA, pinSCL, i2c.SLOW) end function M.Read_User_Reg(Ide) i2c.start(Ide) i2c.address(Ide, SHTAddr ,i2c.TRANSMITTER) i2c.write(Ide,0xE7) i2c.stop(Ide) i2c.start(Ide) i2c.address(Ide, SHTAddr,i2c.RECEIVER) --tmr.delay(1000) c=i2c.read(Ide,1) i2c.stop(Ide) return string.byte(c) end function M.Read_Temp(Ide) i2c.start(Ide) i2c.address(Ide, SHTAddr ,i2c.TRANSMITTER) i2c.write(Ide,eTempNoHoldCmd) i2c.stop(Ide) tmr.delay(100000) i2c.start(Ide) i2c.address(Ide, SHTAddr,i2c.RECEIVER) c=i2c.read(Ide,3) i2c.stop(Ide) --print("Raw",string.byte(c,1,2)) d=bit.clear(bit.lshift(string.byte(c,1),8)+string.byte(c,2),1,3) return (((d*17572)/65536)-4685)/100; end function M.Read_Hum(Ide) i2c.start(Ide) i2c.address(Ide, SHTAddr ,i2c.TRANSMITTER) i2c.write(Ide,eRHumidityNoHoldCmd) i2c.stop(Ide) tmr.delay(50000) i2c.start(Ide) i2c.address(Ide, SHTAddr,i2c.RECEIVER) c=i2c.read(Ide,3) i2c.stop(Ide) --print("Raw",string.byte(c,1,2)) d=bit.clear(bit.lshift(string.byte(c,1),8)+string.byte(c,2),1,3) return (((d*12500)/65536)-600)/100 end --print("Speed ",Init(id,pinSDA, pinSCL)) --print("User reg",Read_User_Reg(id)) --print(string.format("%02.2f",Read_Temp(id)),"deg C") --print(string.format("%02.2f",Read_Hum(id)),"RH") return M 和用法: 代码:全选SHT21 = require("sht21_2") pinSDA = 6 pinSCL = 7 id = 0 SHT21.Init(id,pinSDA, pinSCL) print("Speed ",SHT21.Init(id,pinSDA, pinSCL)) print("User reg",SHT21.Read_User_Reg(id)) print(string.format("%02.2f",SHT21.Read_Temp(id)),"deg C") print(string.format("%02.2f",SHT21.Read_Hum(id)),"RH") SHT21 = nil package.loaded["sht21_2"]=nil 哪里有问题?相同的结构适用于其他模块。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
1034 浏览 1 评论
562浏览 6评论
470浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
454浏览 5评论
456浏览 4评论
428浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 23:47 , Processed in 0.801433 second(s), Total 73, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号