Step-by step introduction to I2C EEPROM

Dependencies:   mbed

Committer:
kaliczp
Date:
Tue Jan 12 09:13:00 2016 +0000
Revision:
1:c1f476b94bb3
Parent:
0:f7bdc8dfa76d
Child:
2:41fccbb2e863
Read data with button press and send through UART

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kaliczp 0:f7bdc8dfa76d 1 /***
kaliczp 0:f7bdc8dfa76d 2 **** ST M24512 512-Kbit I2C EEPROM
kaliczp 0:f7bdc8dfa76d 3 **** E0-E2 pulled low
kaliczp 0:f7bdc8dfa76d 4 **** 10k pull up resistors on SDA and SCL lines
kaliczp 0:f7bdc8dfa76d 5 ***/
kaliczp 0:f7bdc8dfa76d 6 #include "mbed.h"
kaliczp 0:f7bdc8dfa76d 7
kaliczp 0:f7bdc8dfa76d 8 #define EEPROM_ADDR (0b10100000) // EEPROM address
kaliczp 0:f7bdc8dfa76d 9
kaliczp 0:f7bdc8dfa76d 10 I2C i2c(I2C_SDA, I2C_SCL);
kaliczp 1:c1f476b94bb3 11 DigitalIn mybutton(USER_BUTTON); // Activate button
kaliczp 1:c1f476b94bb3 12 Serial pc(SERIAL_TX, SERIAL_RX); // Initialize UART connection
kaliczp 1:c1f476b94bb3 13 // Use a terminal program (eg. putty)!
kaliczp 0:f7bdc8dfa76d 14
kaliczp 0:f7bdc8dfa76d 15 int main()
kaliczp 0:f7bdc8dfa76d 16 {
kaliczp 1:c1f476b94bb3 17 pc.printf("Read data from EEPROM sequentially");
kaliczp 0:f7bdc8dfa76d 18 char data[1];
kaliczp 0:f7bdc8dfa76d 19 while (1) {
kaliczp 1:c1f476b94bb3 20 if (mybutton == 0) { // Button is pressed
kaliczp 1:c1f476b94bb3 21 i2c.read(EEPROM_ADDR, data, 1);
kaliczp 1:c1f476b94bb3 22 pc.printf("%d\n\r",data[0]);
kaliczp 1:c1f476b94bb3 23 wait_ms(500);
kaliczp 1:c1f476b94bb3 24 }
kaliczp 0:f7bdc8dfa76d 25 }
kaliczp 0:f7bdc8dfa76d 26
kaliczp 0:f7bdc8dfa76d 27 }