Step-by step introduction to I2C EEPROM
Dependencies: mbed
main.cpp@1:c1f476b94bb3, 2016-01-12 (annotated)
- 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?
User | Revision | Line number | New 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 | } |