Added SPI burst mode to spi 8 bit.

Dependents:   Bicycl_Computer_NUCLEO-F411RE Bicycl_Computer_NUCLEO-L476RG

Fork of UniGraphic by GraphicsDisplay

Added SPI burst mode to this graphics driver. If whoever wants this rolled in to repository let me know. I replaced _spi.write(); with fastWrite(); and clearRX();


// need to re-create SPI firmware to access SPI handle
static SPI_HandleTypeDef SpiHandle;

void SPI8::fastWrite(int data) {
      SpiHandle.Instance = SPI1;
    // Check if data is transmitted
    while ((SpiHandle.Instance->SR & SPI_SR_TXE) == 0);
    SpiHandle.Instance->DR = data;
void SPI8::clearRX( void ) {
        SpiHandle.Instance = SPI1;
    //Check if the RX buffer is busy
    //While busy, keep checking
    while (SpiHandle.Instance->SR & SPI_SR_BSY){   
        // Check RX buffer readable
        while ((SpiHandle.Instance->SR & SPI_SR_RXNE) == 0);
        int dummy = SpiHandle.Instance->DR;


RevisionDateWhoCommit message
36:0ced7cf0ec8c 2017-08-04 trevieze Added Gimp Graphic Display Routine for Compass default tip
35:782de649ef6f 2017-07-20 trevieze No Changes
34:7eea44b19734 2017-04-28 trevieze Burst for 8 bit spi.
33:e3b3181a57e2 2017-04-12 trevieze Added SPI burst mode to SPI 8 bit.
32:9cd6227dc7a6 2016-05-02 dreschpe If char is not in font, print blank.; Useful if you have a number only font and want to format output.
31:ef4225cef157 2016-04-01 Rhyme The width and height of SEPS225 are 0x80, but I mistook it to 0x7F in the first version and have fixed them in later version, but in the newest version we had the return of 0x7F, so I try to fix them to 0x80 again.
30:87855d03d91a 2015-11-29 Geremia Add ILI9320 init to ILI932x
29:866213bb9bf0 2015-11-28 Geremia Add ILI9327 and S6D04D1 (240x400 displays)
28:2b562717a864 2015-11-28 Geremia fix ILI932x spi
27:acb2594b8aa4 2015-10-26 dreschpe fix handling of PAR8 / PAR16 includes
26:09c1d5110134 2015-10-18 dreschpe Add GCC defines to the font files to enable compiling with gcc
25:daacdcf34e52 2015-10-18 dreschpe Add check if platform supports par port mode
24:1a2ebae1d289 2015-06-22 Rhyme SEPS225 window function started working
23:d0eb35bbd2f3 2015-06-18 Rhyme SEPS225 added and still being worked
22:f9a37f22b9cb 2015-06-11 Geremia Add set_font_zoom(x_mul, y_mul)
21:ae0a4eedfc90 2015-03-31 Geremia Add BUS_8 and BUS_16 (slow as expected)
20:14daa48ffd4c 2015-03-23 Geremia Add ILI 9320/9325/9328 custom TFT932x class, parallel/spi 8/16bit, with orientation, scroll, pixelread, fastwindow.; Par8 and 16 tested, SPI not at all, needs checking if the CS toggle is necessary (see SPI8.cpp SPI16.cpp).
19:1bdfb971b2c1 2015-03-02 Geremia Added LCD ST7565, the very basic std one, tested also on UC1701
18:ffa58f1a680a 2015-03-02 Geremia Added LCD ST7565, compatible with UC1701
17:1dafb896c6f5 2015-02-24 dreschpe Add SSD1306 scroll functions
16:244f9563ebc1 2015-02-23 Geremia revised Bitmap() for faster plotting
15:b9483ba842c8 2015-02-23 Geremia LCD macro undef workaround for KL46Z KL43Z, thanks ban4jp
14:29bab588ba75 2015-02-22 dreschpe correct doku
13:d8c593fa7705 2015-02-22 Geremia multibyte cmds workaround for compatibility with actual SPI_16 NOP trick (see LCD class wr_cmd8)
12:9c8f3076347c 2015-02-22 dreschpe Add SSD1306 OLED Driver
11:b842b8e332cb 2015-02-20 Geremia added auto_gram_read_format() to TFt inits. Even if write is set to 16bit RGB color, for some controllers the read cmd outputs 18bit BGR. Now that function will autodetect and set internal flags accordingly, so pixelread() is always correct.
10:668cf78ff93a 2015-02-19 Geremia Added FastWindow for TFT (truncated set page/column cmds), which increases speed when plotting single pixels (around 20-25% faster?!?!)
9:1749ae993cfe 2015-02-17 dreschpe Add param LCDSIZE_x, LCDSIZE_Y to constructor. They are optional.
8:26757296c79d 2015-02-17 Geremia Fixed scroll for smaller area, better font spacing
7:bb0383b91104 2015-02-17 Geremia TFT: added get deviceID, scroll functions
6:8356d48a07db 2015-02-16 Geremia updated docs
5:b222a9461d6b 2015-02-16 Geremia Added pixelread for TFTs
4:12ba0ecc2c1f 2015-02-15 Geremia Added PAR16, separated 16bit writes for cmd parameters and pixeldata
3:48f3282c2be8 2015-02-14 Geremia small things
2:713844a55c4e 2015-02-13 Geremia Initial TFT implementation, needs to add read cmds
1:ff019d22b275 2015-02-13 Geremia Added SPI_16, LCD done
0:75ec1b3cde17 2015-02-12 Geremia Initial tests, LCD par and spi ok