![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Some test with Nucleo and SPI EEPROM.
Dependencies: mbed
main.cpp@2:1ad4d6a0ebfe, 2015-01-20 (annotated)
- Committer:
- kaliczp
- Date:
- Tue Jan 20 02:16:06 2015 +0000
- Revision:
- 2:1ad4d6a0ebfe
- Parent:
- 1:c667d1f8e407
Read write free strings.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kaliczp | 0:a063a7db08f8 | 1 | #include "mbed.h" |
kaliczp | 0:a063a7db08f8 | 2 | |
kaliczp | 0:a063a7db08f8 | 3 | DigitalIn mybutton(USER_BUTTON); // Activate button |
kaliczp | 0:a063a7db08f8 | 4 | DigitalOut chipselect(D10); // ChipSelect (CS) pin |
kaliczp | 0:a063a7db08f8 | 5 | SPI eeprom(SPI_MOSI, SPI_MISO, SPI_SCK); // Activate SPI to ST eeprom |
kaliczp | 2:1ad4d6a0ebfe | 6 | Serial pc(SERIAL_TX, SERIAL_RX); |
kaliczp | 0:a063a7db08f8 | 7 | |
kaliczp | 0:a063a7db08f8 | 8 | #define WREN 0x06 |
kaliczp | 0:a063a7db08f8 | 9 | #define RDSR 0x05 |
kaliczp | 0:a063a7db08f8 | 10 | #define READ_LOW 0x03 |
kaliczp | 1:c667d1f8e407 | 11 | #define WRITE_LOW 0x02 |
kaliczp | 0:a063a7db08f8 | 12 | |
kaliczp | 0:a063a7db08f8 | 13 | int main() { |
kaliczp | 2:1ad4d6a0ebfe | 14 | char char_in = 't'; |
kaliczp | 2:1ad4d6a0ebfe | 15 | char char_out; |
kaliczp | 2:1ad4d6a0ebfe | 16 | int i = 0; |
kaliczp | 2:1ad4d6a0ebfe | 17 | |
kaliczp | 0:a063a7db08f8 | 18 | chipselect =1; |
kaliczp | 0:a063a7db08f8 | 19 | eeprom.frequency(1000000); // set 1 MHz clock rate |
kaliczp | 0:a063a7db08f8 | 20 | while(1) { |
kaliczp | 0:a063a7db08f8 | 21 | if (mybutton == 0) { // Button is pressed |
kaliczp | 0:a063a7db08f8 | 22 | chipselect = 0; |
kaliczp | 0:a063a7db08f8 | 23 | eeprom.write(RDSR); |
kaliczp | 0:a063a7db08f8 | 24 | eeprom.write(0x00); |
kaliczp | 0:a063a7db08f8 | 25 | chipselect = 1; |
kaliczp | 0:a063a7db08f8 | 26 | chipselect = 0; |
kaliczp | 0:a063a7db08f8 | 27 | eeprom.write(WREN); |
kaliczp | 0:a063a7db08f8 | 28 | chipselect = 1; |
kaliczp | 0:a063a7db08f8 | 29 | wait_us(1); |
kaliczp | 2:1ad4d6a0ebfe | 30 | while((char_in == 'y') == (char_in == 'n')){ |
kaliczp | 2:1ad4d6a0ebfe | 31 | pc.printf("\n\rDo you want type in some characters? Answer (y/n): "); |
kaliczp | 2:1ad4d6a0ebfe | 32 | char_in=pc.getc(); |
kaliczp | 2:1ad4d6a0ebfe | 33 | pc.putc(char_in); |
kaliczp | 2:1ad4d6a0ebfe | 34 | if((char_in != 'n') == (char_in != 'y')) { |
kaliczp | 2:1ad4d6a0ebfe | 35 | pc.printf("\n\rPlease substitute %c with (y/n)-t", char_in); |
kaliczp | 2:1ad4d6a0ebfe | 36 | } |
kaliczp | 2:1ad4d6a0ebfe | 37 | } |
kaliczp | 2:1ad4d6a0ebfe | 38 | if(char_in == 'y'){ |
kaliczp | 2:1ad4d6a0ebfe | 39 | pc.printf("\n\rWrite something (max. 16 chars): "); |
kaliczp | 2:1ad4d6a0ebfe | 40 | i = 0; |
kaliczp | 2:1ad4d6a0ebfe | 41 | while(i < 16){ |
kaliczp | 2:1ad4d6a0ebfe | 42 | char_in=pc.getc(); |
kaliczp | 2:1ad4d6a0ebfe | 43 | if(char_in == '\n'){ |
kaliczp | 2:1ad4d6a0ebfe | 44 | i = 16; |
kaliczp | 2:1ad4d6a0ebfe | 45 | break; |
kaliczp | 2:1ad4d6a0ebfe | 46 | } |
kaliczp | 2:1ad4d6a0ebfe | 47 | chipselect = 0; |
kaliczp | 2:1ad4d6a0ebfe | 48 | eeprom.write(WREN); |
kaliczp | 2:1ad4d6a0ebfe | 49 | chipselect = 1; |
kaliczp | 2:1ad4d6a0ebfe | 50 | wait_us(1); |
kaliczp | 2:1ad4d6a0ebfe | 51 | chipselect = 0; |
kaliczp | 2:1ad4d6a0ebfe | 52 | eeprom.write(WRITE_LOW); |
kaliczp | 2:1ad4d6a0ebfe | 53 | eeprom.write(i); |
kaliczp | 2:1ad4d6a0ebfe | 54 | eeprom.write(char_in); |
kaliczp | 2:1ad4d6a0ebfe | 55 | chipselect = 1; |
kaliczp | 2:1ad4d6a0ebfe | 56 | i++; |
kaliczp | 2:1ad4d6a0ebfe | 57 | pc.putc(char_in); |
kaliczp | 2:1ad4d6a0ebfe | 58 | } |
kaliczp | 2:1ad4d6a0ebfe | 59 | char_in = 't'; |
kaliczp | 2:1ad4d6a0ebfe | 60 | } |
kaliczp | 2:1ad4d6a0ebfe | 61 | if(char_in == 'n'){ |
kaliczp | 2:1ad4d6a0ebfe | 62 | pc.printf("\n\rFirst page: "); |
kaliczp | 2:1ad4d6a0ebfe | 63 | for(i=0; i<16; i++){ |
kaliczp | 2:1ad4d6a0ebfe | 64 | chipselect = 0; |
kaliczp | 2:1ad4d6a0ebfe | 65 | eeprom.write(READ_LOW); |
kaliczp | 2:1ad4d6a0ebfe | 66 | eeprom.write(i); |
kaliczp | 2:1ad4d6a0ebfe | 67 | char_out = eeprom.write(0x00); |
kaliczp | 2:1ad4d6a0ebfe | 68 | chipselect = 1; |
kaliczp | 2:1ad4d6a0ebfe | 69 | pc.putc(char_out); |
kaliczp | 2:1ad4d6a0ebfe | 70 | } |
kaliczp | 2:1ad4d6a0ebfe | 71 | char_in = 't'; |
kaliczp | 2:1ad4d6a0ebfe | 72 | } |
kaliczp | 2:1ad4d6a0ebfe | 73 | pc.printf("\n\r"); |
kaliczp | 0:a063a7db08f8 | 74 | wait(2); |
kaliczp | 0:a063a7db08f8 | 75 | } |
kaliczp | 0:a063a7db08f8 | 76 | } |
kaliczp | 0:a063a7db08f8 | 77 | } |
kaliczp | 0:a063a7db08f8 | 78 |