void LCDInit(void) { // Initialize SPI Interface Initialize_SPI(); // set pin directions LCD_CS_MAKE_OUT(); LCD_CS_HIGH(); LCD_DC_MAKE_OUT(); LCD_RES_MAKE_OUT(); // Toggle reset pin LCD_RES_LOW(); Delay(1000); LCD_RES_HIGH(); Delay(1000); // Send sequence of command LCDSend(0x21, SEND_CMD); // LCD Extended Commands. LCDSend(0xC8, SEND_CMD); // Set LCD Vop (Contrast). 0xC8 LCDSend(0x04 | !!(LCD_START_LINE_ADDR & (1u << 6)), SEND_CMD); // Set Temp S6 for start line LCDSend(0x40 | (LCD_START_LINE_ADDR & ((1u << 6) - 1)), SEND_CMD); // Set Temp S[5:0] for start line //LCDSend( 0x13, SEND_CMD ); // LCD bias mode 1:48. LCDSend(0x12, SEND_CMD); // LCD bias mode 1:68. LCDSend(0x20, SEND_CMD); // LCD Standard Commands, Horizontal addressing mode. //LCDSend( 0x22, SEND_CMD ); // LCD Standard Commands, Vertical addressing mode. LCDSend(0x08, SEND_CMD); // LCD blank LCDSend(0x0C, SEND_CMD); // LCD in normal mode. // Clear and Update LCDClear(); LCDUpdate(); }
void main () { LCD_CS_MAKE_OUT(); LCD_CS_HIGH(); LCDInit(); LCDContrast(0x50); LCDStr(0, (unsigned char *)"*** OLIMEX *** ", 1); LCDStr(1, (unsigned char *)" OLIMEXINO ", 0); LCDStr(2, (unsigned char *)" STM32 + ", 1); LCDStr(3, (unsigned char *)" MOD-LCD3310 ", 0); LCDStr(4, (unsigned char *)" using GPIO ", 1); LCDStr(5, (unsigned char *)" interface ", 0); while(1){ sleep(10); } }