09
2018
05

arduino I2C设备地址扫描

代码如下(文件名:IIC_SCAN.ino)

#include <Wire.h>

void setup() {
  Serial.begin(115200);
  Serial.println("IIC_SCAN");
  Serial.println("Water");
  Serial.println("2018-04-01");
  Serial.println("v1.0");
  Wire.begin();
}

void loop() {
  unsigned char buff[2];
  int addr = 0;
  Serial.print("--->    ");
  for(int i = 0; i < 16; i++){
    Serial.print(" ");
    Serial.print(i, HEX);
    Serial.print(" ");
    }
  Serial.println();
  
  for(int i = 0; i <= 127; i++) {
    addr = i;
    if(i % 16 == 0){
      Serial.print("0X");
      if(i == 0) Serial.print("0");
      Serial.print(i, HEX);
      Serial.print("    ");
    }
    
    Wire.requestFrom(addr, 1, "1");

    unsigned char r = Wire.read();
    if(r == 0xFF){
      Serial.print("--");
    }else{
      if(addr < 16) Serial.print("0");
      Serial.print(addr, HEX);
    }
    Serial.print(" ");
    if((i + 1) % 16 == 0){
      Serial.println();  
    }
    delay(10);
  }
  Serial.println();
  delay(1000);
}

代码下载:0001.IIC_SCAN.ino.zip

运行结果:

i2c_02.gif

(三个I2C设备分别为BH1750、SHT30、BMP280)

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。