查看: 9962|回复: 2

初玩Arduino之I2C地址扫描

[复制链接]
  • TA的每日心情
    开心
    2014-11-10 21:00
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2014-11-4 11:08:18 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 FishX 于 2014-11-4 17:30 编辑

    淘宝了个I2C接口的128 64 OLED屏,结果怎么调试都不能显示。板子上印着I2C地址为0x78。直觉告诉我,地址有可能不对。
    于是谷歌大法,搜索出一段搜索设备I2C地址的代码:
    1. #include <Wire.h>

    2. void setup()
    3. {
    4.   Wire.begin();

    5.   Serial.begin(9600);
    6.   Serial.println("nI2C Scanner");
    7. }

    8. void loop()
    9. {
    10.   byte error, address;
    11.   int nDevices;

    12.   Serial.println("Scanning...");

    13.   nDevices = 0;
    14.   for(address = 1; address < 127; address++ )
    15.   {
    16.     // The i2c_scanner uses the return value of
    17.     // the Write.endTransmisstion to see if
    18.     // a device did acknowledge to the address.
    19.     Wire.beginTransmission(address);
    20.     error = Wire.endTransmission();

    21.     if (error == 0)
    22.     {
    23.       Serial.print("I2C device found at address 0x");
    24.       if (address<16)
    25.         Serial.print("0");
    26.       Serial.print(address,HEX);
    27.       Serial.println("  !");

    28.       nDevices++;
    29.     }
    30.     else if (error==4)
    31.     {
    32.       Serial.print("Unknow error at address 0x");
    33.       if (address<16)
    34.         Serial.print("0");
    35.       Serial.println(address,HEX);
    36.     }   
    37.   }
    38.   if (nDevices == 0)
    39.     Serial.println("No I2C devices foundn");
    40.   else
    41.     Serial.println("donen");

    42.   delay(5000);           // wait 5 seconds for next scan
    43. }
    复制代码
    终于搜索出正确的I2C地址了:原来是0x3C
    QQ截图20141104104129.png

    总结,原因分析,板子上印的地址是正确的,只不过Arduino和MSP430的寄存器是7位,所以地址需要右移一位。
    111.jpg



    评分

    参与人数 1声望 +5 与非币 +10 收起 理由
    shaoziyang + 5 + 10 很给力!

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2019-12-1 10:07
  • 签到天数: 1617 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2014-11-16 21:38:01 | 显示全部楼层
    顶一个。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2017-4-9 12:36:03 | 显示全部楼层
    很有帮助,我也刚才测试了一下 我的DHT12 地地址是0x5c
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /5 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-12-21 01:22 , Processed in 0.138115 second(s), 21 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.