Util used to scan for I2C devices

Dependencies:   mbed

Fork of PRES11_I2C_Detect by EL-POM1001

I2C program used to scan the I2C bus for connected devices

Import program

00001 #include "mbed.h"
00002 
00003 //SDA , SCL
00004 I2C i2cBus(I2C_SDA, I2C_SCL);
00005 
00006 int main()
00007 {
00008     i2cBus.frequency(100000);
00009 
00010     printf("\r\n Scanning for I2C devices (addresses in hex)\r\n ");
00011     printf("    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f\r\n");
00012     for (int i = 0; i < 128; i += 16) {
00013         printf("%02x: ", i);
00014         for(int j = 0; j < 16; j++) {
00015             // Skip unwanted addresses
00016             if (i+j < 0x3 || i+j > 0x77) {
00017                 printf("   ");
00018                 continue;
00019             }
00020 
00021             if (!i2cBus.write(i+j<<1, NULL, 0))
00022                 printf("%02x ", i+j);
00023             else
00024                 printf("-- ");
00025 
00026         }
00027         printf("\r\n");
00028     }
00029 }
00030 
Committer:
rlanghbv
Date:
Mon Nov 09 13:21:03 2015 +0000
Revision:
0:9e51d4453b53
Child:
1:624dc0072a11
First comit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rlanghbv 0:9e51d4453b53 1 #include "mbed.h"
rlanghbv 0:9e51d4453b53 2
rlanghbv 0:9e51d4453b53 3 //SDA , SCL
rlanghbv 0:9e51d4453b53 4 I2C i2cBus(PB_9, PB_8);
rlanghbv 0:9e51d4453b53 5
rlanghbv 0:9e51d4453b53 6 int main()
rlanghbv 0:9e51d4453b53 7 {
rlanghbv 0:9e51d4453b53 8 i2cBus.frequency(100000);
rlanghbv 0:9e51d4453b53 9
rlanghbv 0:9e51d4453b53 10 printf("\r\n Scanning for I2C devices (addresses in hex)\r\n ");
rlanghbv 0:9e51d4453b53 11 printf(" 0 1 2 3 4 5 6 7 8 9 a b c d e f\r\n");
rlanghbv 0:9e51d4453b53 12 for (int i = 0; i < 128; i += 16) {
rlanghbv 0:9e51d4453b53 13 printf("%02x: ", i);
rlanghbv 0:9e51d4453b53 14 for(int j = 0; j < 16; j++) {
rlanghbv 0:9e51d4453b53 15 // Skip unwanted addresses
rlanghbv 0:9e51d4453b53 16 if (i+j < 0x3 || i+j > 0x77) {
rlanghbv 0:9e51d4453b53 17 printf(" ");
rlanghbv 0:9e51d4453b53 18 continue;
rlanghbv 0:9e51d4453b53 19 }
rlanghbv 0:9e51d4453b53 20
rlanghbv 0:9e51d4453b53 21 if (!i2cBus.write(i+j<<1, NULL, 0))
rlanghbv 0:9e51d4453b53 22 printf("%02x ", i+j);
rlanghbv 0:9e51d4453b53 23 else
rlanghbv 0:9e51d4453b53 24 printf("-- ");
rlanghbv 0:9e51d4453b53 25
rlanghbv 0:9e51d4453b53 26 }
rlanghbv 0:9e51d4453b53 27 printf("\r\n");
rlanghbv 0:9e51d4453b53 28 }
rlanghbv 0:9e51d4453b53 29 }