Jingxi Zhang
/
I2CSlaveTest
mbed OS-5 I2C Slave using Nucleo-F401RE board.
main.cpp@0:96840f1cc413, 2016-08-22 (annotated)
- Committer:
- jingxizhang
- Date:
- Mon Aug 22 01:30:24 2016 +0000
- Revision:
- 0:96840f1cc413
Initial commit;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jingxizhang | 0:96840f1cc413 | 1 | #include "mbed.h" |
jingxizhang | 0:96840f1cc413 | 2 | |
jingxizhang | 0:96840f1cc413 | 3 | I2CSlave slave(PB_9, PB_8); |
jingxizhang | 0:96840f1cc413 | 4 | |
jingxizhang | 0:96840f1cc413 | 5 | int main() { |
jingxizhang | 0:96840f1cc413 | 6 | char buf[10]; |
jingxizhang | 0:96840f1cc413 | 7 | char msg[] = "Slave!"; |
jingxizhang | 0:96840f1cc413 | 8 | |
jingxizhang | 0:96840f1cc413 | 9 | slave.address(0x0A); |
jingxizhang | 0:96840f1cc413 | 10 | while (1) { |
jingxizhang | 0:96840f1cc413 | 11 | int i = slave.receive(); |
jingxizhang | 0:96840f1cc413 | 12 | switch (i) { |
jingxizhang | 0:96840f1cc413 | 13 | case I2CSlave::ReadAddressed: |
jingxizhang | 0:96840f1cc413 | 14 | slave.write(msg, strlen(msg) + 1); // Includes null char |
jingxizhang | 0:96840f1cc413 | 15 | break; |
jingxizhang | 0:96840f1cc413 | 16 | case I2CSlave::WriteGeneral: |
jingxizhang | 0:96840f1cc413 | 17 | slave.read(buf, 10); |
jingxizhang | 0:96840f1cc413 | 18 | //printf("Read G: %s\n", buf); |
jingxizhang | 0:96840f1cc413 | 19 | break; |
jingxizhang | 0:96840f1cc413 | 20 | case I2CSlave::WriteAddressed: |
jingxizhang | 0:96840f1cc413 | 21 | slave.read(buf, 10); |
jingxizhang | 0:96840f1cc413 | 22 | //printf("Read A: %s\n", buf); |
jingxizhang | 0:96840f1cc413 | 23 | break; |
jingxizhang | 0:96840f1cc413 | 24 | } |
jingxizhang | 0:96840f1cc413 | 25 | for(int i = 0; i < 10; i++) buf[i] = 0; // Clear buffer |
jingxizhang | 0:96840f1cc413 | 26 | } |
jingxizhang | 0:96840f1cc413 | 27 | } |