Step-by step introduction to I2C EEPROM
Dependencies: mbed
main.cpp
- Committer:
- kaliczp
- Date:
- 2016-01-13
- Revision:
- 3:58bd0878bb0f
- Parent:
- 2:41fccbb2e863
File content as of revision 3:58bd0878bb0f:
/*** **** ST M24512 512-Kbit I2C EEPROM **** E0-E2 pulled low **** 10k pull up resistors on SDA and SCL lines ***/ #include "mbed.h" #define EEPROM_ADDR (0b10100000) // EEPROM address I2C i2c(I2C_SDA, I2C_SCL); DigitalIn mybutton(USER_BUTTON); // Activate button Serial pc(SERIAL_TX, SERIAL_RX); // Initialize UART connection // Use a terminal program (eg. putty)! int main() { pc.printf("Read data from EEPROM sequentially\r\n"); char data[1]; char data_write[3]; //Array for address and data // Type in address data_write[0] = 0; data_write[1] = 0; // Type data data_write[2] = 1; uint8_t i; for( i=0; i < 255; i++ ) { data_write[1] = i; data_write[2] = i; i2c.write(EEPROM_ADDR, data_write, 3); wait_ms(6); // Wait eeprom internal write cycle (5ms) + 1ms } // Reset eeprom pointer address char eeprom_address[2] = {0, 0}; i2c.write(EEPROM_ADDR, eeprom_address, 2, true); i2c.read(EEPROM_ADDR, data, 1, false); pc.printf("Written data: %d\n\r",data[0]); while (1) { if (mybutton == 0) { // Button is pressed i2c.read(EEPROM_ADDR, data, 1); pc.printf("%d\n\r",data[0]); wait_ms(500); } } }