problem with 0.95 inch color OLED driver ssd1331

Good day!

I am trying to display a picture on a 0.95 inch 65k color OLED.

The only library I use is SPI.h and the only function I know is spi.transfer()

after the display initial part and use code below:

digitalWrite(DC,HIGH);// turn to data mode,
for (int x=0;x<12800;x++)
{int i=0xff;
SPI.transfer(i); // full screen white

it successfully turn the display full screen white.

however when when I change i=0x28(which should be red according to the driver datasheet), the oled displays some randomly colors

So what’s the reason might cause this problem ? I totally stuck here for a long time.

and another question ,

may I possible just use SPI.transfer() to send the color picture bitmap to driver ram to display picture ?
I would like to know what’s the source code to send the bitmap bit by bit to the driver ?

the bitmap is something like that(transfer by image2lcd):

/* const unsigned char gImage_16bit[2250] = {
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XDF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,…}

thanks in advance!

SSD1331_1.0.pdf (780 KB)

Difficult to say without knowing the exact setup. Check: - Transfer mode (color format) - RGB/BGR order. See command A0

Oliver