可以使用ESP32的Wire库来配置I2C从设备模式,并通过 Wire.begin(SDA_pin, SCL_pin) 函数来设置I2C引脚。下面是示例代码:
#include
#define SLAVE_ADDRESS 0x04 // I2C从设备地址
#define SDA_PIN 21 // 自定义SDA引脚
#define SCL_PIN 22 // 自定义SCL引脚
void setup(){
Wire.begin(SDA_PIN, SCL_PIN); // 初始化I2C通信
Wire.onReceive(receiveData); // 注册接收数据回调函数
}
void receiveData(int byteCount){
while(Wire.available()){
char c = Wire.read();
// 处理接收到的数据
}
}
void loop(){
// 循环执行主程序的逻辑
}
在从设备模式下,使用 Wire.onReceive() 注册一个接收数据的回调函数来处理数据。函数 receiveData() 可以在从设备接收到数据时被调用。你可以在该函数中实现从设备的逻辑处理。