Alberto Petrucci
/
NUCLEO_I2C_SLAVE
NUCLEO I2C SLAVE
main.cpp@0:9c09b3288b2a, 2017-03-01 (annotated)
- Committer:
- capriele
- Date:
- Wed Mar 01 08:07:32 2017 +0000
- Revision:
- 0:9c09b3288b2a
NUCLEO I2C SLAVE
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
capriele | 0:9c09b3288b2a | 1 | #include <mbed.h> |
capriele | 0:9c09b3288b2a | 2 | |
capriele | 0:9c09b3288b2a | 3 | I2CSlave slave(D14, D15); |
capriele | 0:9c09b3288b2a | 4 | |
capriele | 0:9c09b3288b2a | 5 | int main() { |
capriele | 0:9c09b3288b2a | 6 | slave.frequency(100000); //Set the clock frequency |
capriele | 0:9c09b3288b2a | 7 | char buf[1]; |
capriele | 0:9c09b3288b2a | 8 | char msg[1]; |
capriele | 0:9c09b3288b2a | 9 | msg[0] = 0x00; |
capriele | 0:9c09b3288b2a | 10 | int j = 1; |
capriele | 0:9c09b3288b2a | 11 | slave.address(0x07); |
capriele | 0:9c09b3288b2a | 12 | while (1) { |
capriele | 0:9c09b3288b2a | 13 | int i = slave.receive(); |
capriele | 0:9c09b3288b2a | 14 | switch (i) { |
capriele | 0:9c09b3288b2a | 15 | case I2CSlave::ReadAddressed: |
capriele | 0:9c09b3288b2a | 16 | slave.write(msg, strlen(msg) + 1); // Includes null char |
capriele | 0:9c09b3288b2a | 17 | break; |
capriele | 0:9c09b3288b2a | 18 | case I2CSlave::WriteAddressed: |
capriele | 0:9c09b3288b2a | 19 | slave.read(buf, 1); |
capriele | 0:9c09b3288b2a | 20 | printf("Read A: %02X\n", buf[0]); |
capriele | 0:9c09b3288b2a | 21 | break; |
capriele | 0:9c09b3288b2a | 22 | } |
capriele | 0:9c09b3288b2a | 23 | buf[0] = 0; // Clear buffer |
capriele | 0:9c09b3288b2a | 24 | msg[0] = j; |
capriele | 0:9c09b3288b2a | 25 | j++; |
capriele | 0:9c09b3288b2a | 26 | } |
capriele | 0:9c09b3288b2a | 27 | } |