Air780E的I2C软件使用指南
今天我们学习合宙低功耗4G模组Air780E的I2C接口操作方法,文末【阅读原文】获取最新资料。
一、I2C概述
Air780E可支持1路I2C接口,如果复用的话最多有两路:

I2C配置:
兼容PhilipsI2C标准协议。
支持Fastmode(400Kbps)和Slowmode(100Kbps)。
只支持master模式,不支持slaver模式。
可通过软件来配置内部的上拉电阻,1.8K或者20K。
理论上最多可支持127个从设备。
| 管脚名 | 类型 | 序号 | 电压域 | 描述 |
|
I2C_SCL |
IO |
67 |
VDD_EXT |
I2C时钟信号,用作I2C时需外加上拉 |
|
I2C_SDA |
IO |
66 |
VDD_EXT |
I2C时钟信号,用作I2C时需外加上拉 |
I2C的参考电路如下:

Air780E的I2C接口电压是1.8V/3.3V可配置,通过PIN100IO_SEL配置IO口电平,能够满足大部分外设的直接需求,但是如果要和5V或者以上电平的外设通信,那就必须要加电平转换电路

二、演示功能概述
本例程将使用I2C协议读取传感器数据并打印出来。
三、准备硬件环境
3.1 780E开发板一套
此核心板的详细使用说明参考:Air780E产品手册中的<<开发板Core_Air780E使用说明V1.0.5.pdf>>;核心板使用过程中遇到任何问题,可以直接参考这份使用说明pdf文档。

3.2 数据通信线
typec接口USB数据线即可。
3.3 PC电脑
WINDOWS系统。
3.4 sht20温湿度传感器一个

3.5 780E与sht20接线图如下

四、准备软件环境
4.1 基本的下载调试工具
使用说明参考:Luatools下载和详细使用;
https://docs.openluat.com/Luatools/
五、使用I2C读取sht20软硬件资料
5.1 文档和工具:
780E模块使用固件:SDK&Demo-合宙文档中心,本demo使用的固件版本是:
LuatOS-SoC_V1112_EC618_FULL.soc
本教程使用的demo:
https://gitee.com/openLuat/LuatOS-Air780E/tree/master/demo/sht20
将固件和脚本烧录到模块中:Luatools下载和使用教程-合宙模组资料中心
源码和固件已打包,如下所示:右键点我,另存为,下载完整压缩文件包
5.2demo使用api介绍
i2c.setup(id,speed,pullup)
作用:i2c初始化
参数:
| 传入值类型 | 解释 |
|
int |
设备id,例如i2c1的id为1,i2c2的id为2 |
|
int |
I2C速度,例如i2c.FAST |
|
bool |
是否软件上拉,默认不开启,需要硬件支持 |
返回值:
| 返回值类型 | 解释 |
|
int |
成功就返回1,否则返回0 |
i2c.send(id,addr,data,stop)
作用:i2c发送数据
参数:
| 传入值类型 | 解释 |
|
int |
设备id,例如i2c1的id为1,i2c2的id为2 |
|
int |
I2C子设备的地址,7位地址 |
|
integer/string/table |
待发送的数据,自适应参数类型 |
|
integer |
可选参数是否发送停止位1发送0不发送默认发送(105不支持) |
返回值:
| 传入值类型 | 解释 |
|
true/false |
发送是否成功 |
i2c.recv(id,addr,len)
作用:i2c接收数据
| 传入值类型 | 解释 |
|
int |
设备id,例如i2c1的id为1,i2c2的id为2 |
|
int |
I2C子设备的地址,7位地址 |
|
int |
接收数据的长度 |
返回值:
| 传入值类型 | 解释 |
|
string |
收到的数据 |
六、代码示例介绍
6.1 读取SHT20温湿度传感器
6.1.1 SHT20简介:
SHT20是使用I2C协议进行通信的温湿度传感器。
首先我们可以发送STH20的7位从机地址+1位读写位(写0读1),然后发送8位的命令,0xF3是读取温度的命令,0xF5是读取湿度的命令。发送完后接收应答,等待20us之后我们发出I2C的结束时序。
6.1.2 demo介绍
首先初始化i2c,然后给sht20发送读取温湿度命令,接收sht20回传的数据即可。

6.1.3 将程序下载到开发板:
使用说明参考:Luatools下载和详细使用
https://docs.openluat.com/Luatools/
七、功能验证
成功使用I2C协议读取到sht20传感器的温湿度数值。

八、总结
本例程使用i2c协议读取了sht20传感器传输的温湿度数值。
九、常见问题
9.1 i2c每次读写数据前都需要setup一次吗?
不需要。
正常的业务逻辑为:
i2c.setup,
…此处可以多次读写数据,
i2c.close,
setup之后,只要没有close,就可以反复读写数据,
一旦执行了close,下次读写数据前,必须再次setup。
9.2 i2c通信时模块可以做从设备吗?
注意:模块I2C只能做主设备,外部需要上拉,在配置FAST速率时,上拉电阻阻值不要大于4.7K。
9.3 i2c设备7位的地址为0x38,需要我手动转换到8位地址吗?
这里i2c_addr地址是7bit地址,如果i2c外设手册中给的是8bit地址,需要把8bit地址右移1位,赋值给i2c_addr变量;如果i2c外设手册中给的是7bit地址,直接把7bit地址赋值给i2c_addr变量即可。
Air780E的I2C软件使用指南的更多相关文章
- 《移山之道:VSTS软件开发指南》读书笔记
这两天看了<移山之道:VSTS软件开发指南>,对团队软件开发又有了新的认识.也许对于我们这些软件开发的新手来说,最重要的是具体技术与应用框架,但读了这本书后我感觉到,实际团队项目中工具的使 ...
- I2C软件模拟协议与电容触摸控制
I2C 与 Touch slide 最近做了一个与触摸滑条相关的测试,利用I2C通讯协议来配置触摸控制芯片的相关寄存器,读取触摸读数,并通过STM Studio动态显示触摸读数的变化过程.这个测试相对 ...
- 搜寻Linux软件实用指南
搜寻Linux软件实用指南 对于初学者来说,仅仅安装好Linux系统还是不够的,还需要安装大量的应用软件.许多下载网站都提供了诸如装机必备软件的下载,分门别类提供经典的工具软件下载.本文主要针对初学 ...
- I2C软件调试思路并知识总结
I2C是一种只使用两根线的串行通信协议.一根线是串行数据线SDA,另外一种是串行时钟线SCL. I²C允许相当大的工作电压范围,但典型的电压准位为+3.3V或+5v. I²C的参考设计使用一个7比特长 ...
- Mac 平台下功能强大的Shimo软件使用指南
年初自从换了MAC工作站后,彻底享受了Apple产品给我们带来的完美体验,可能是刚转过来不适应,在访问网络设备时觉得远程连接不方便,例如ssh,vpn登陆都不是很方便,后来又安装了openvpnfor ...
- 读《移山之道——VSTS软件开发指南》
读<移山之道>这本书差不多用了一个星期的时间,感觉还是收获了一些知识的,以前只是会简单地编个小程序(虽然现在也是这样),但看过这本书之后我对软件开发这个概念的认识度有了从一片模糊到了解大体 ...
- 读《移山之道-VSTS软件开发指南》
首先,我选择<移山之道>有几个原因.第一,书的名字给我一种新鲜感,而不是像另外两本书那么平常:第二,作者邹欣是老师推荐的,看一看他的书或许能让我发现老师对他推崇备至的原因,而实际上,读完这 ...
- win10软件使用指南备忘录
altrun:http://xbeta.info/altrun.htm timer:https://www.playpcesor.com/2009/04/timer.html (好像要上网打开) do ...
- 蛋白组DIA分析:Spectronaut软件使用指南
官方文档: https://biognosys.com/media.ashx/spectronautmanual.pdf 0. 准备 Spectronaut软件是蛋白组DIA分析最常用的谱图解析软件之 ...
- 如何开发优质的 Flutter App:Flutter App 软件调试指南
本次博主带来的是<深入 Flutter 系列课程>第三讲,主要聊聊如何进行 Flutter App 代码的调试.本次课程将在GitChat平台上免费进行,通过本场 Chat,您将获得以下技 ...
随机推荐
- Zabbix创建模板(templates)及监控项(item)
Zabbix监控--Zabbix创建模板(templates)及监控项(item) 生产环境中,有一个简单的原则,那就是无监控不上线,监控系统开源方案中,zabbix也算不错的选择.由于其系统接口的开 ...
- 搭建QT开发环境
下载 Qt官网,Qt下载网址 安装前要登录账号,其他的该咋就咋样,路径不能有中文. 组件自己选 我的是MinGW.Android.虚拟键盘.Qt脚本.Qt Creator 然后创个项目,能跑起来就是安 ...
- Vue开发转到React开发,Prettier - Code formatter失效的问题
Vue转到React,Prettier - Code formatter失效,按下Ctrl+S无效,需要手动格式化一次 然后选择默认的格式化方式 之后按下Ctrl+S就可以进行格式化啦!!!
- Comfyui 基础教程(一) —— 本地安装部署
前言 前面一篇文章已经介绍过,ComfyUI 和 Stable Diffusion 的关系.不清楚的朋友,看传送门 Stable Diffusion 小白的入坑铺垫 . WebUI 以及 ComfyU ...
- 支付宝小程序swiper video的坑
在使用uniapp 开发多端应用的时候,踩了一个坑,有一个页面,是使用swiper作为滑动容器,然后每个swiper-item 嵌套不同的内容, 代码示意: <template> < ...
- elementUI实现月、季度、年 时间选择框
elementUI实现月.季度.年 时间选择框 一.通过 el-date-picker 组件来实现月.年的选择 代码如下: <el-date-picker v-if="dateType ...
- 城市时空预测的统一数据管理和综合性能评估 [实验、分析和基准]《Unified Data Management and Comprehensive Performance Evaluation for Urban Spatial-Temporal Prediction [Experiment, Analysis & Benchmark]》
2023年11月1日,还有两个月,2023年就要结束了,希望在结束之前我能有所收获和进步,冲呀,老咸鱼. 论文:Unified Data Management and Comprehensive Pe ...
- POJ-3176 Cow Bowling(基础dp)
The cows don't use actual bowling balls when they go bowling. They each take a number (in the range ...
- 以后基于 Topass 的博客加密方法通告
Topass 加密方法 以后会将部分未公开内容公开,请你通过此加密途径来破解密码 特别地,为了保证博客的浏览体验,我不会通过这种方法加密任何一种应该公开的文章 话说你们不妨猜猜用的什么算法
- KSM的使用
使能KSM KSM只会处理通过madvise系统调用显式指定的用户进程地址空间,因此用户程序想使用这个功能就必须在分配地址空间时显式地调用madvise(addr,length,MADV_MERGEA ...