slave

Dependencies:   mbed

main.cpp

Committer:
maner1256
Date:
2018-12-17
Revision:
0:516fb708ec42

File content as of revision 0:516fb708ec42:

#include <mbed.h>

I2CSlave slave(D14, D15);
Serial pc(USBTX, USBRX);
DigitalIn mybutton(USER_BUTTON);
#define ADDRESS 0x50
int main() {
   pc.baud(57600);
   pc.printf("Starting slave device at address:0x%02x\r\n", ADDRESS);
   slave.frequency(400000); //Set the clock frequency
   slave.address(ADDRESS);
   char buf[6];
   //char msg[1];
   //msg[0] = 0x00;
   int j = 1;
   
   while (1) {
       
       int i = slave.receive();
       if(i > 0)pc.printf("rcv:%d\r\n", i);
         
       switch (i) {
           case I2CSlave::ReadAddressed:
               pc.printf("I2CSlave::ReadAddressed\r\n");
               //slave.write(msg, strlen(msg) + 1); // Includes null char
               break;
           case I2CSlave::WriteAddressed:
               pc.printf("I2CSlave::WriteAddressed\r\n");
               
               slave.read(buf, 2);
               /*for(int ik=0;ik<7;ik++)
               {
                   buf[ik]=0x00;
                }*/
                printf("Read A: 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x \r\n", buf[0], buf[1], buf[2], buf[3], buf[4], buf[5]);
                break;
       
               
       }
       if(mybutton == 0) {
           
        
       buf[0] = 0;    // Clear buffer
       buf[1] = 0;
       buf[2] = 0;
       buf[3] = 0;
       buf[4] = 0;
       buf[5] = 0;
       
       }
       //msg[0] = j;
       j++;
       
   }
}