在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
LUA脚本的好处是用户可以根据自己注册的一批API(当前TOOL已经提供了几百个函数供大家使用),实现各种小程序,不再限制Flash里面已经下载的程序,就跟手机安装APP差不多,所以在H7-TOOL里面被广泛使用,支持在线调试运行,支持离线运行。 ACK应答: NACK无应答: 完整效果:
启动信号函数:
举例说明:
-------------I2C从机地址 ------------------------------------------- BH1750_SLAVE_ADDRESS = 0x46 --向芯片发送1字节长度的操作码 --_ucOpecode 寄存器地址 function BH1750_WriteCmd(_ucOpecode) i2c_bus("start") i2c_bus("send", BH1750_SLAVE_ADDRESS) i2c_bus("send", _ucOpecode) i2c_bus("stop") end 发过个控制命令就是如下方式,使用方式和C语言基本没什么区别。
--修改BH1750测量模式,决定测量分辨率 --__ucMode : 测量模式 值域(1,2,3) function BH1750_ChageMode(_ucMode) -- 连续高分测量模式1 if(_ucMode == 1)then BH1750_WriteCmd(BHOP_CON_H_RES) s_Mode = 1 -- 测量模式1,分辨率 1 lux end -- 连续高分测量模式2 if(_ucMode == 2)then BH1750_WriteCmd(BHOP_CON_H_RES2) s_Mode = 2 -- 测量模式2, 分辨率 0.5 lux end -- 连续高分测量模式3 if(_ucMode == 3)then BH1750_WriteCmd(BHOP_CON_L_RES); s_Mode = 3 -- 测量模式3,低分辨率 4 lux end end
读取就可以如下方式,里面有个关键的操作就是将返回的字符串转换为实际的数值,方便操作:
-- 读取BH1750测量结果. 主程序需要在 bsp_InitBH1750() 执行之后 180ms 才能读到正确数据 -- 连续测量模式下,之后主程序可以定时调用本函数读取光强度数据,间隔时间需要大于180ms -- 返 回 值: 原始的测量数据 ,结果未转换 function BH1750_ReadData() local str local byte0, byte1 local w i2c_bus("start") i2c_bus("send", BH1750_SLAVE_ADDRESS + 1) -- 读操作 str = i2c_bus("recive", 2) byte0 = tonumber(string.byte(str,1,1)) byte1 = tonumber(string.byte(str,2,2)) w = byte0 * 256 + byte1 i2c_bus("stop") return w end
H7-TOOL的I2C控制器驱动18bit分辨率ADC芯片MCP3421操作说明,简单易用(2021-11-20) |
请发表评论