调用M5Stack库中封装I2C通信API,实现对从机设备的访问。使用前需通过Wire.begin(21, 22);
进行初始化。默认使用PORT-A引脚(G21,G22)。
功能:
向指定从机写入指令
函数原型:
bool writeCommand(uint8_t address, uint8_t subAddress)
参数 | 类型 | 描述 |
---|---|---|
address | uint8_t |
从机地址 |
subAddress | uint8_t |
寄存器地址 |
返回值:
値 | 描述 |
---|---|
true | 成功 |
false | 失败 |
功能:
向指定寄存器地址写入一个Byte
函数原型:
bool writeByte(uint8_t address, uint8_t subAddress, uint8_t data)
参数 | 类型 | 描述 |
---|---|---|
address | uint8_t |
从机地址 |
subAddress | uint8_t |
寄存器地址 |
data | uint8_t |
参数 |
返回值:
値 | 描述 |
---|---|
true | 成功 |
false | 失败 |
功能:
向指定寄存器地址写入多个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 | 失败 |
功能:
从指定从机地址读取一个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 | 失败 |
功能:
从指定从机地址读取多个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 | 失败 |
功能:
扫描I2C总线上的所有设备
函数原型:
bool readBytes(bool *result)
参数 | 类型 | 描述 |
---|---|---|
result | bool * |
结果存储目标(128字节) |
返回值:
値 | 描述 |
---|---|
true | 成功 |
false | 失败 |
使用示例:
bool result[0x80];
M5.I2C.scanID(&result[0]);