美文网首页Luat开源硬件
Luat实例教程:i2c协议

Luat实例教程:i2c协议

作者: Luat物联网通信模块 | 来源:发表于2018-03-23 13:27 被阅读35次

本示例实现的功能是:利用I2C协议对设备进行读写demo项目

1.在编辑工具建立一个test.lua的文件(不一定叫这个名字,用户可以自己随便取名)

2.设置本文件被全体可见。也就意味着,一旦test被某一文件加载,则test在任何文件中均可被看见,即test中全局变量和函数均可被任何文件调用。

module(...,package.seeall)

3.编写初始化函数

local function init()
    local i2cslaveaddr = 0x0E
    --注意,此处的i2cslaveaddr是7bit地址
    --底层在读操作时,自动将第一个字节的内容转换为(i2cslaveaddr << 1) | 0x01
    --底层在写操作时,自动将第一个字节的内容转换为(i2cslaveaddr << 1) | 0x00
    --i2cslaveaddr根据外设地址而定
    if i2c.setup(i2cid,i2c.SLOW,i2cslaveaddr) ~= i2c.SLOW then
        print("init fail")
        return
    end
    local cmd = {0x1B,0x00,0x6A,0x01,0x1E,0x20,0x21,0x04,0x1B,0x00,0x1B,0xDA,0x1B,0xDA}
    for i=1,#cmd,2 do                               --#cmd表示cmd table长度
        i2c.write(i2cid,cmd[i],cmd[i+1])            --写寄存器地址和数据
        print("init",string.format("%02X",cmd[i]),string.format("%02X",string.byte(i2c.read(i2cid,cmd[i],1))))                    --读取寄存器数值并转换为16进制输出
    end
end

4.利用定时器调用init函数

sys.timer_start(init,5000)

5.在编辑工具中建立一个名为main.lua的文件。lua脚本的执行从main.lua开始,main.lua是入口文件(注意:main.lua只能有一个)。在main.lua中把test加载进去就好了。sys.init()是对系统初始化,sys.run()是系统主程序。这两句必须有。

--重要提醒:必须在这个位置定义MODULE_TYPE、PROJECT和VERSION变量
--MODULE_TYPE:模块型号,目前仅支持Air201、Air202、Air800
--PROJECT:ascii string类型,可以随便定义,只要不使用,就行
--VERSION:ascii string类型,如果使用Luat物联云平台固件升级的功能,必须按照"X.X.X"定义,X表示1位数字;否则可随便定义
MODULE_TYPE = "Air202"
PROJECT = "I2C"
VERSION = "1.0.0"
require"sys";
require"test";
sys.init(0,0)
sys.run()

!!!attention

一个工程只有一个main.lua

相关文章

  • Luat实例教程:i2c协议

    本示例实现的功能是:利用I2C协议对设备进行读写demo项目 1.在编辑工具建立一个test.lua的文件(不一定...

  • Luat实例教程:mqtt协议

    本示例实现的功能是:mqtt连接,发布消息,掉线处理。 1.在编辑工具建立一个test.lua的文件(不一定叫这个...

  • Luat实例教程:adc

    本示例实现的功能是:读取adc值。 1.在编辑工具建立一个test.lua的文件(不一定叫这个名字,用户可以自己随...

  • Luat实例教程:gpio

    本示例实现的功能是:IO输入输出以及串口中断回调函数的使用 1.在编辑工具建立一个test.lua的文件(不一定叫...

  • Luat实例教程:json

    本示例实现的功能是:json编解码测试demo项目 1.在编辑工具建立一个test.lua的文件(不一定叫这个名字...

  • I2C协议浅谈

    导语:此为个人对I2C总线协议的一点总结,如若想深度了解I2C总线协议可参考相关文档 I2C英文权威手册 I2C中...

  • 第019课 I2C协议详解及裸机程序分析

    第001节_I2C协议与EEPROM I2C协议 I2C在硬件上的接法如下(图19-1)所示,主控芯片引出两条线S...

  • Luat实例教程:连接aliyun

    本示例实现的功能是:MQTT_TCP连接阿里云物联网后台的demo项目(华东2节点) 注意:在demo中,aliy...

  • Luat实例教程:sms短信

    本示例实现的功能是:短信发送以及读取demo !!!attention 1.在编辑工具建立一个test.lua的文...

  • Luat实例教程:pwm功能

    本示例实现的功能是:pwm功能demo项目 1.在编辑工具建立一个test.lua的文件(不一定叫这个名字,用户可...

网友评论

    本文标题:Luat实例教程:i2c协议

    本文链接:https://www.haomeiwen.com/subject/hfxxcftx.html