钛极OS之TiI2CMaster
双向二线制同步串行总线( Inter-Integrated Circuit)简称为I2C,是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息,具体可参考https://baike.baidu.com/item/I2C ... 27975&fromtitle=I2C或https://en.wikipedia.org/wiki/I%C2%B2C。
TiJOS Framework提供TiI2CMaster来支持I2C主机功能,其将I2C Master按照port分组,共支持256组,组号范围0-255,即:port0-port255;每组都支持指定模式的单独设置。
Java包
tijos.framework.devicecenter
TiI2CMaster工作模式定义
| 项目 | 参数 | 说明 |
| 波特率 | 100Kbps、400Kbps、3.4Mbps | 支持的通讯波特率,受硬件平台限制 |
| 从机地址 | 7、10 | 地址位数 |
TiI2CMaster方法定义
TiI2CMaster类中主要的方法:
| 方法 | 说明 |
| TiI2CMaster(int portID) | 静态方法,通过指定port打开I2C Master,返回TiI2CMaster对象,若需要再次打开或打开为其他设备时需要先调用close关闭当前对象 |
| void close() | 关闭当前对象 |
| void setWorkBaudrate(int baudRate) | 设置通讯波特率 |
| void read(int address, byte[] data, int offset, int len) | 从从机读数据,7、10位从机地址。 |
| void write(int address, byte[] data, int offset, int len) | 向从机写数据,7、10位从机地址。 |
| void read(int address, byte[] data, int offset, int len, boolean repeated) | 从从机读数据并使能重复,即,不发送stop,从7、10位从机地址。 |
| void write(int address, byte[] data, int offset, int len, boolean repeated) | 向从机写数据并使能重复,即,不发送stop,7、10位从机地址。 |
TiI2CMaster类中他方法的技术说明请参考TiJOS Framework说明文档。
TiI2CMaster对象创建与销毁
TiI2CMaster对象的创建需要调用open静态方法,传入指定port参数,返回创建的接口对象。
TiI2CMaster对象的销毁需要调用close方法。
- <font size="3">...
- int i2cPort0 = 0;
- TiI2CMaster i2c0 = TiI2CMaster.open(i2cPort0);
- ...
- ...
- ...
- i2c0.close();</font>
复制代码
TiI2CMaster模式设置
TiI2CMaster模式设置通过setBaudRate方法设置,设置参数为波特率。
- <font size="3">...
- i2c0.setBaudRate(100); //波特率100Kbps
- ...</font>
复制代码
注意:模式支持受平台特性限制,设置时须了解硬件平台特性。
TiI2CMaster输入输出
TiI2CMaster的输入输出操作通过read和write方法完成
- <font size="3">...
- byte[] cmdBuffer = {0x40, 0x00};
- byte[] dataBuffer = {0x00, 0x00, 0x00, 0x00};
- i2c0.write(0x3C, dataBuffer, 0, 2, true);
- i2c0.read(0x3C, dataBuffer, 0, 4);
- ...</font>
复制代码
更多详细介绍请见钛云物联官网:www.tijos.net

本文详细介绍了TiJOSFramework下的TiI2CMaster模块,包括其工作模式、波特率设置、从机地址配置,以及读写操作方法。TiI2CMaster支持256组I2C主机功能,每组可独立设置,适用于多种硬件平台。

被折叠的 条评论
为什么被折叠?



