Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
10 years, 11 months ago.
I2C loopback
Hi, I'm wondering if there's any way of getting loopback working on the LPC1768. At the moment I have pins 9,10 set up as slave and 28,27 set up as master. I have pin 9 connected to pin 28 and pin 10 connected to pin 27 with a 4.4K pull-up resistor on each line (we'd run out of 4.7K).
At the moment the code repeatedly prints "Read A:" but nothing more.
I'm assuming there is something beyond my current knowledge I need to be doing, but I don't know what that would be.
Thanks!
Attempt at i2c loopback
#include "mbed.h"
Serial pc(USBTX, USBRX); // tx, rx.
I2C i2c(p28, p27);
I2CSlave slave(p9, p10);
const int addr = 0x90;
int main() {
char msg[] = "Slave!";
char buf[10];
slave.address(addr);
while (1) {
i2c.write(addr, msg2, strlen(msg2)+1);
// Slave code
int i = slave.receive();
switch (i) {
case I2CSlave::ReadAddressed:
slave.write(msg, strlen(msg) + 1); // Includes null char
break;
case I2CSlave::WriteGeneral:
slave.read(buf, 10);
pc.printf("Read G: %s\r\n", buf);
break;
case I2CSlave::WriteAddressed:
slave.read(buf, 10);
pc.printf("Read A: %s\r\n", buf);
break;
}
for(int i = 0; i < 10; i++) buf[i] = 0; // Clear buffer
}
}