diff --git a/libraries/SPI/src/SPI.cpp b/libraries/SPI/src/SPI.cpp index 84b2cb8bae9f1180a6e580715531164deb04988b..a2371fde1c9b3d7a9a26061276d8f48c6a5a484c 100644 --- a/libraries/SPI/src/SPI.cpp +++ b/libraries/SPI/src/SPI.cpp @@ -189,9 +189,6 @@ void SPIClass::transferBits(uint32_t data, uint32_t * out, uint8_t bits) } /** - * Note: - * data need to be aligned to 32Bit - * or you get an Fatal exception (9) * @param data uint8_t * * @param size uint32_t */ @@ -205,6 +202,20 @@ void SPIClass::writeBytes(uint8_t * data, uint32_t size) spiEndTransaction(_spi); } +/** + * @param data void * + * @param size uint32_t + */ +void SPIClass::writePixels(const void * data, uint32_t size) +{ + if(_inTransaction){ + return spiWritePixelsNL(_spi, data, size); + } + spiSimpleTransaction(_spi); + spiWritePixelsNL(_spi, data, size); + spiEndTransaction(_spi); +} + /** * @param data uint8_t * data buffer. can be NULL for Read Only operation * @param out uint8_t * output buffer. can be NULL for Write Only operation @@ -219,9 +230,6 @@ void SPIClass::transferBytes(uint8_t * data, uint8_t * out, uint32_t size) } /** - * Note: - * data need to be aligned to 32Bit - * or you get an Fatal exception (9) * @param data uint8_t * * @param size uint8_t max for size is 64Byte * @param repeat uint32_t diff --git a/libraries/SPI/src/SPI.h b/libraries/SPI/src/SPI.h index ffa0bdf3f229b3f1ed328cfd62c40bafcc28cbfd..38dde76faeff3a824aaf3ebc976f702484e3f676 100644 --- a/libraries/SPI/src/SPI.h +++ b/libraries/SPI/src/SPI.h @@ -73,6 +73,7 @@ public: void write16(uint16_t data); void write32(uint32_t data); void writeBytes(uint8_t * data, uint32_t size); + void writePixels(const void * data, uint32_t size);//ili9341 compatible void writePattern(uint8_t * data, uint8_t size, uint32_t repeat); spi_t * bus(){ return _spi; }