SSD1306 128x32 OLED Initialization problem
An example of similar OLED display, see that commands are more than one byte long.

write_reg(par, 0xFD, 0x12);
write_reg(par, 0xAE);
write_reg(par, 0xB3, 0xF3);
write_reg(par, 0xCA, 0x3F);
write_reg(par, 0xA2, 0x00);
write_reg(par, 0xA1, 0x00);
write_reg(par, 0xA0, 0x14, 0x11);
write_reg(par, 0xAB, 0x01);
write_reg(par, 0xB4, 0xA0, 0xFD);
write_reg(par, 0xC1, 0xFF);
write_reg(par, 0xC7, 0x0F);
write_reg(par, 0xB1, 0xF0);
write_reg(par, 0xD1, 0x82, 0x20);
write_reg(par, 0xBB, 0x0D);
write_reg(par, 0xBE, 0x00);
write_reg(par, 0xA6);
write_reg(par, 0xAF);


For example your code: 

ssd1306_WriteCommand(0xA0); //column address mapped to 127 //Start left or right

ssd1306_WriteCommand(0xC8); //COM output mode //Start top or bottum

ssd1306_WriteCommand(0xDA); //COM pin hardware configuration


Should be something like this:

ssd1306_WriteCommand(0xA0, 0xC8, 0xDA ); 


And so, also the other commands that require operands.