i2c, scan
Nucleo I2C Doesn't work if rtos library present in project. Example:
main.cpp@0:f971dfcdb7ad, 2016-02-04 (annotated)
- Committer:
- Dzhafarkhanov
- Date:
- Thu Feb 04 10:34:43 2016 +0000
- Revision:
- 0:f971dfcdb7ad
Nucleo i2c;
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| Dzhafarkhanov | 0:f971dfcdb7ad | 1 | #include "mbed.h" |
| Dzhafarkhanov | 0:f971dfcdb7ad | 2 | |
| Dzhafarkhanov | 0:f971dfcdb7ad | 3 | |
| Dzhafarkhanov | 0:f971dfcdb7ad | 4 | #define D_SDA I2C_SDA |
| Dzhafarkhanov | 0:f971dfcdb7ad | 5 | #define D_SCL I2C_SCL |
| Dzhafarkhanov | 0:f971dfcdb7ad | 6 | |
| Dzhafarkhanov | 0:f971dfcdb7ad | 7 | I2C i2c(D_SDA, D_SCL); |
| Dzhafarkhanov | 0:f971dfcdb7ad | 8 | |
| Dzhafarkhanov | 0:f971dfcdb7ad | 9 | Serial pc(SERIAL_TX, SERIAL_RX); |
| Dzhafarkhanov | 0:f971dfcdb7ad | 10 | |
| Dzhafarkhanov | 0:f971dfcdb7ad | 11 | char data [255]; |
| Dzhafarkhanov | 0:f971dfcdb7ad | 12 | int i; |
| Dzhafarkhanov | 0:f971dfcdb7ad | 13 | int main() |
| Dzhafarkhanov | 0:f971dfcdb7ad | 14 | { |
| Dzhafarkhanov | 0:f971dfcdb7ad | 15 | pc.printf("started.. \n"); |
| Dzhafarkhanov | 0:f971dfcdb7ad | 16 | // Scan for I2C devices that reply with ack |
| Dzhafarkhanov | 0:f971dfcdb7ad | 17 | for (i=0; i<=254; i=i+2) { |
| Dzhafarkhanov | 0:f971dfcdb7ad | 18 | if (i2c.read(i, &data[0], 1) ==0) |
| Dzhafarkhanov | 0:f971dfcdb7ad | 19 | { |
| Dzhafarkhanov | 0:f971dfcdb7ad | 20 | pc.printf("I2C device detected at address=%2.2X\n\r", i); |
| Dzhafarkhanov | 0:f971dfcdb7ad | 21 | } |
| Dzhafarkhanov | 0:f971dfcdb7ad | 22 | } |
| Dzhafarkhanov | 0:f971dfcdb7ad | 23 | } |