硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3144|回复: 12
收起左侧

[LUA教程] H7-TOOL的LUA小程序教程第4期:I2C总线主机模式操作说明(2023-12-05)

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
发表于 2022-1-12 11:58:44 | 显示全部楼层 |阅读模式
LUA脚本的好处是用户可以根据自己注册的一批API(当前TOOL已经提供了几百个函数供大家使用),实现各种小程序,不再限制Flash里面已经下载的程序,就跟手机安装APP差不多,所以在H7-TOOL里面被广泛使用,支持在线调试运行,支持离线运行。TOOL的LUA教程争取做到大家可以无痛调用各种功能函数,不需要学习成本。

I2C知识点可以结合这个贴下学习:
H7-TOOL示波器捕获I2C波形操作说明(2021-12-05)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=109953


功能特性:

1、主机最高速度800KHz。
2、IO电平范围支持1.2V-5.0V。
3、支持波形展示。

LUA函数说明:

1、I2C主机初始化函数

i2c_bus("init", 参数)

参数:表示I2C速度,单位Hz,最高800KHz

此函数可以单独LUA调用,也可以在I2C控制器界面调用

上位机页面对应的是”扫描总线设备“按钮:

下载.png

此按钮对调用的函数对i2c_bus("init", 参数)做了封装,原始定义位于上位机软件包路径h7toolPC_release\USBBus里面的usb_bus.lua文件中

2、I2C主机启动和停止函数

启动信号函数:i2c_bus("start")
停止信号函数:i2c_bus("stop")

这两个函数可以单独LUA调用,也可以在I2C控制器界面调用,不过I2C控制器界面对这两个函数进行了封装,由函数I2C_ReadData和I2C_WriteData调用,这两个函数的实现在上位机软件包路径h7toolPC_release\USBBus里面的usb_bus.lua文件中

3、I2C主机发送函数

返回值 = i2c_bus("send",  参数)
参数:表示要发送的8bit地址,高7bit地址+1bit读写控制位,读写控制位 = 0表示写操作,=1表示读操作
返回值:返回0表示应答,返回1表示无应答。

比如对地址0x20进行写操作,就是i2c_bus("send",  0x20|0) , 而读操作的话,就是i2c_bus("send",  0x20|1)

发送数据可以直接发送字符串,比如i2c_bus("send",  ”123456789“),发送实际数值可以使用转移字符i2c_bus("send",  "\x00\x12\x34\x56")

上位机界面对应实现:

12.png

上位机调用的函数I2C_WriteData对函数i2c_bus("start"), i2c_bus("send",  参数) 和 i2c_bus("stop")进行了封装,原定义在上位机软件包路径h7toolPC_release\USBBus里面的usb_bus.lua文件中

4、I2C主机接收函数
返回值 = i2c_bus("recive", 参数)
参数   :表示读取的字节个数。
返回值:返回的数字是字符串方式的,如果要数值方式可以使用LUA函数string.byte转换下(操作案例里面有使用)。

比如读取10个字节数据就可以rd = i2c_bus("recive", 10),rd是返回的数据,

可以单独LUA函数调用,上位机操作对应实现如下:

12.png

上位机调用的函数I2C_ReadData对函数i2c_bus("start"),2c_bus("recive", 参数)和 i2c_bus("stop")进行了封装,原定义在上位机软件包路径h7toolPC_release\USBBus里面的usb_bus.lua文件中

硬件接线方式:

I2C控制器引脚定义
D9 : I2C_SCL, 开漏内部集成上拉电阻2K欧
D7 : I2C_SDA, 开漏内部集成上拉电阻2K欧



举例说明:

每个案例都有详细说明

H7-TOOL 的 I2C 控制器驱动 I2C 从机实现操作说明
https://www.armbbs.cn/forum.php?mod=viewthread&tid=112463

H7-TOOL 的 I2C 接口方式脱机烧录操作方法,已经发布
https://www.armbbs.cn/forum.php?mod=viewthread&tid=113998

H7-TOOL的I2C控制器驱动18bit分辨率ADC芯片MCP3421操作说明,简单易用(2021-11-20)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=109658

H7-TOOL的I2C控制器驱动EEPROM操作说明,支持AT24C02/04/08/16/32/64/128,仅需读写两个函数,随意访问(2021-10-24)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=109261

H7-TOOL的I2C控制器驱动光照传感器BH1750操作说明,简单易用(2021-10-24)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=109265

H7-TOOL的I2C控制器驱动陀螺仪MPU6050操作说明,简单易用(2021-10-24)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=109264

H7-TOOL的I2C控制器驱动气压传感器BM085/BM180操作说明,简单易用(2021-10-24)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=109266


评分

参与人数 1金币 +10 收起 理由
missfox + 10 很给力!

查看全部评分

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
 楼主| 发表于 2022-1-13 18:30:25 | 显示全部楼层
更新完毕。
回复

使用道具 举报

1

主题

132

回帖

135

积分

初级会员

积分
135
发表于 2022-1-13 23:07:46 | 显示全部楼层
白工,辛苦,期待已久, 教程非常好
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
 楼主| 发表于 2022-1-14 09:30:28 | 显示全部楼层
www2205290064 发表于 2022-1-13 23:07
白工,辛苦,期待已久, 教程非常好

回复

使用道具 举报

23

主题

1406

回帖

1475

积分

至尊会员

积分
1475
发表于 2022-1-17 16:44:36 | 显示全部楼层
这么来看,用法和C没什么区别了。
代码不规范,亲人两行泪!
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2023-5-11 18:16:03 | 显示全部楼层
我使用的是离线Lua小程序,请问如何配置IIC通信速率?
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2023-5-11 18:16:23 | 显示全部楼层
我使用的是离线Lua小程序,请问如何配置IIC通信速率?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
 楼主| 发表于 2023-5-11 18:38:24 | 显示全部楼层
lw240320 发表于 2023-5-11 18:16
我使用的是离线Lua小程序,请问如何配置IIC通信速率?

使用的LUA函数I2C_InitSlave,  I2C控制器页面对应的原始LUA文件在这个路径下

下载 (5).png
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2023-5-12 08:55:38 | 显示全部楼层
eric2013 发表于 2023-5-11 18:38
使用的LUA函数I2C_InitSlave,  I2C控制器页面对应的原始LUA文件在这个路径下

谢谢,问题解决了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
 楼主| 发表于 2023-12-3 09:38:37 | 显示全部楼层
此贴更新为I2C主机模式。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
 楼主| 发表于 2023-12-5 10:37:43 | 显示全部楼层
2023-12-05

重新编写了下操作说明,比之前看着更好理解。
回复

使用道具 举报

3

主题

90

回帖

99

积分

初级会员

积分
99
发表于 2023-12-15 09:04:43 | 显示全部楼层
提议增加I2C监测。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
 楼主| 发表于 2023-12-15 09:11:32 | 显示全部楼层
lib钱 发表于 2023-12-15 09:04
提议增加I2C监测。

别把聊天内容贴出来。

我已经开了新帖:

提议增加一个I2C监测多设备通信功能,本质是个低配版I2C从机,不做应答
https://www.armbbs.cn/forum.php? ... 2284&fromuid=58
(出处: 硬汉嵌入式论坛)

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 03:50 , Processed in 0.232749 second(s), 41 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表