I2C

调用M5Stack库中封装I2C通信API,实现对从机设备的访问。使用前需通过Wire.begin(21, 22);进行初始化。默认使用PORT-A引脚(G21,G22)。

writeCommand

功能:

向指定从机写入指令

函数原型:

bool writeCommand(uint8_t address, uint8_t subAddress)

参数 类型 描述
address uint8_t 从机地址
subAddress uint8_t 寄存器地址

返回值:

描述
true 成功
false 失败

writeByte

功能:

向指定寄存器地址写入一个Byte

函数原型: bool writeByte(uint8_t address, uint8_t subAddress, uint8_t data)

参数 类型 描述
address uint8_t 从机地址
subAddress uint8_t 寄存器地址
data uint8_t 参数

返回值:

描述
true 成功
false 失败

writeBytes

功能:

向指定寄存器地址写入多个Byte

函数原型: bool writeBytes(uint8_t address, uint8_t subAddress, uint8_t *data,uint8_t length)

参数 类型 描述
address uint8_t 从机地址
subAddress uint8_t 寄存器地址
data uint8_t * 数据储存指针
length uint8_t 数据长度

返回值:

描述
true 成功
false 失败

readByte

函数重载

功能:

从指定从机地址读取一个Byte

函数原型: bool readByte(uint8_t address, uint8_t *result)

参数 类型 描述
address uint8_t 从机地址
result uint8_t * 数据储存指针

返回值:

描述
true 成功
false 失败

功能:

从指定寄存器地址读取一个Byte

函数原型:

bool readByte(uint8_t address, uint8_t subAddress,uint8_t *result)

参数 类型 描述
address uint8_t 从机地址
subAddress uint8_t 寄存器地址
result uint8_t * 数据储存指针

返回值:

描述
true 成功
false 失败

readBytes

函数重载

功能:

从指定从机地址读取多个Byte

函数原型:

bool readBytes(uint8_t address, uint8_t count,uint8_t * dest)

参数 类型 描述
address uint8_t 从机地址
count uint8_t 请求的字节数
result uint8_t * 数据储存指针

返回值:

描述
true 成功
false 失败

功能:

从指定寄存器地址读取多个Byte

函数原型:

bool readBytes(uint8_t address, uint8_t subAddress, uint8_t count, uint8_t * dest)

参数 类型 描述
address uint8_t 从机地址
subAddress uint8_t 寄存器地址
count uint8_t 请求的字节数
result uint8_t * 数据储存指针

返回值:

描述
true 成功
false 失败

scanID

功能:

扫描I2C总线上的所有设备

函数原型:

bool readBytes(bool *result)

参数 类型 描述
result bool * 结果存储目标(128字节)

返回值:

描述
true 成功
false 失败

使用示例:

  bool result[0x80];
  M5.I2C.scanID(&result[0]);
On This Page