Util used to scan for I2C devices
Fork of PRES11_I2C_Detect by
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
main.cpp@0:9e51d4453b53, 2015-11-09 (annotated)
- 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?
User | Revision | Line number | New 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 | } |