Single variable write functions

These functions are designed to write a single variable - of a specific data type - to the flash memory. Each supported data type has a function specific to it - as listed below:

bool writeByte(uint32_t _addr, uint8_t data, bool errorCheck = true)
  • Writes an unsigned 8 bit integer - a byte- to the address specified.
bool writeChar(uint32_t _addr, int8_t data, bool errorCheck = true)
  • Writes a signed 8 bit integer - a char- to the address specified.
bool writeShort(uint32_t _addr, int16_t data, bool errorCheck = true)
  • Writes a signed 16 bit integer - a short- to the address specified.
bool writeWord(uint32_t _addr, uint16_t data, bool errorCheck = true)
  • Writes an unsigned 16 bit integer - a word- to the address specified.
bool writeLong(uint32_t _addr, int32_t data, bool errorCheck = true)
  • Writes a signed 32 bit integer - a long- to the address specified.
bool writeULong(uint32_t _addr, uint32_t data, bool errorCheck = true)
  • Writes an unsigned 32 bit integer - an unsigned long- to the address specified.
bool writeFloat(uint32_t _addr, float data, bool errorCheck = true)
  • Writes a float to the address specified.
bool writeStr(uint32_t _addr, String &data, bool errorCheck = true)
  • Writes a String to the address specified.

Parameters Mandatory & Optional

uint32_t _addr

Address in memory where the data is to be written to. Mandatory

size_t data

Data variable to write to the flash memory. Mandatory

bool errorCheck

Refer to Advanced use Optional

What they do

Write the data (of the datatype and size specified by the user) to the address provided

Returns boolean

Returns TRUE if data written successfully, else returns FALSE

Example code:

#include <SPIMemory.h>

SPIFlash flash;

uint32_t _address;
// This data type should be changed depending on the type of data being write to the flash memory
String dataOut = "This is a test String!";


void setup() {
  flash.begin();
  _address = flash.getAddress(sizeof(dataIn));
  Serial.print(F("Address = "));
  Serial.println(_address);

  Serial.print(F("Data write "));
  // This function should be changed depending on the type of data being written to the flash memory
  if (flash.writeStr(_address, dataOut)) {
    Serial.println(F("successful"));
  }
  else {
    Serial.println(F("failed"));
  }
}

void loop() {
}