图1 NXP开发板快到我的碗里来
图2 显示效果
图3 实物连接
图4 引脚分布图
代码:
#defineOLED_SCLK_Clr() GPIO_PinWrite(GPIO, 0u,7u, 0)//CLK #defineOLED_SCLK_Set() GPIO_PinWrite(GPIO, 0u,7u, 1) #defineOLED_SDIN_Clr() GPIO_PinWrite(GPIO, 1u,0u, 0)//DIN #define OLED_SDIN_Set() GPIO_PinWrite(GPIO, 1u, 0u, 1) #defineOLED_RST_Clr() GPIO_PinWrite(GPIO, 0u,15u, 0) //RES #defineOLED_RST_Set() GPIO_PinWrite(GPIO, 0u,15u, 1) #defineOLED_DC_Clr() GPIO_PinWrite(GPIO, 1u,5u, 0) //DC #defineOLED_DC_Set() GPIO_PinWrite(GPIO, 1u,5u, 1) #defineOLED_CS_Clr() GPIO_PinWrite(GPIO, 1u,8u, 0) //CS #defineOLED_CS_Set() GPIO_PinWrite(GPIO, 1u,8u, 1) #defineOLED_BLK_Clr() GPIO_PinWrite(GPIO, 0u,0u, 0) //BLK #defineOLED_BLK_Set() GPIO_PinWrite(GPIO, 0u,0u, 1) - void app_oled_init(void)
- {
- gpio_pin_config_t gpioPinConfig;
- gpioPinConfig.pinDirection = kGPIO_DigitalOutput;
- gpioPinConfig.outputLogic = 1u;
- GPIO_PinInit (GPIO, 0u, 7u, &gpioPinConfig);
- GPIO_PinInit (GPIO, 1u, 0u, &gpioPinConfig);
- GPIO_PinInit (GPIO, 0u, 15u, &gpioPinConfig);
- GPIO_PinInit (GPIO, 1u, 5u, &gpioPinConfig);
- GPIO_PinInit (GPIO, 0u, 0u, &gpioPinConfig);
- GPIO_PinInit (GPIO, 1u, 8u, &gpioPinConfig);
- OLED_BLK_Set();
- }
复制代码 - void LCD_Writ_Bus(u8 dat)
- {
- u8 i;
- OLED_CS_Clr();
- OLED_CS_Clr();
- OLED_CS_Clr();
- for(i=0;i<8;i++)
- {
- OLED_SCLK_Clr();
- OLED_SCLK_Clr();
- OLED_SCLK_Clr();
- if(dat&0x80)
- {
- OLED_SDIN_Set();
- OLED_SDIN_Set();
- OLED_SDIN_Set();
- }
- else
- {
- OLED_SDIN_Clr();
- OLED_SDIN_Clr();
- OLED_SDIN_Clr();
- }
- OLED_SCLK_Set();
- OLED_SCLK_Set();
- OLED_SCLK_Set();
- dat<<=1;
- }
- OLED_CS_Set();
- OLED_CS_Set();
- OLED_CS_Set();
- }
- void LCD_WR_DATA8(u8 dat)
- {
- OLED_DC_Set();
- OLED_DC_Set();
- OLED_DC_Set();
- LCD_Writ_Bus(dat);
- }
- void LCD_WR_DATA(u16 dat)
- {
- OLED_DC_Set();
- OLED_DC_Set();
- OLED_DC_Set();
- LCD_Writ_Bus(dat>>8);
- LCD_Writ_Bus(dat);
- }
- void LCD_WR_REG(u8 dat)
- {
- OLED_DC_Clr();
- LCD_Writ_Bus(dat);
- }
复制代码- void Lcd_Init(void)
- {
- app_oled_init();
- OLED_RST_Clr();
- SysTick_DelayTicks(200);
- OLED_RST_Set();
- SysTick_DelayTicks(200);
- LCD_WR_REG(0x11);
- SysTick_DelayTicks(100);
- LCD_WR_REG(0x21);
- LCD_WR_REG(0xB1);
- LCD_WR_DATA8(0x05);
- LCD_WR_DATA8(0x3A);
- LCD_WR_DATA8(0x3A);
- LCD_WR_REG(0xB2);
- LCD_WR_DATA8(0x05);
- LCD_WR_DATA8(0x3A);
- LCD_WR_DATA8(0x3A);
- LCD_WR_REG(0xB3);
- LCD_WR_DATA8(0x05);
- LCD_WR_DATA8(0x3A);
- LCD_WR_DATA8(0x3A);
- LCD_WR_DATA8(0x05);
- LCD_WR_DATA8(0x3A);
- LCD_WR_DATA8(0x3A);
- LCD_WR_REG(0xB4);
- LCD_WR_DATA8(0x03);
- LCD_WR_REG(0xC0);
- LCD_WR_DATA8(0x62);
- LCD_WR_DATA8(0x02);
- LCD_WR_DATA8(0x04);
- LCD_WR_REG(0xC1);
- LCD_WR_DATA8(0xC0);
- LCD_WR_REG(0xC2);
- LCD_WR_DATA8(0x0D);
- LCD_WR_DATA8(0x00);
- LCD_WR_REG(0xC3);
- LCD_WR_DATA8(0x8D);
- LCD_WR_DATA8(0x6A);
- LCD_WR_REG(0xC4);
- LCD_WR_DATA8(0x8D);
- LCD_WR_DATA8(0xEE);
- LCD_WR_REG(0xC5); /*VCOM*/
- LCD_WR_DATA8(0x0E);
- LCD_WR_REG(0xE0);
- LCD_WR_DATA8(0x10);
- LCD_WR_DATA8(0x0E);
- LCD_WR_DATA8(0x02);
- LCD_WR_DATA8(0x03);
- LCD_WR_DATA8(0x0E);
- LCD_WR_DATA8(0x07);
- LCD_WR_DATA8(0x02);
- LCD_WR_DATA8(0x07);
- LCD_WR_DATA8(0x0A);
- LCD_WR_DATA8(0x12);
- LCD_WR_DATA8(0x27);
- LCD_WR_DATA8(0x37);
- LCD_WR_DATA8(0x00);
- LCD_WR_DATA8(0x0D);
- LCD_WR_DATA8(0x0E);
- LCD_WR_DATA8(0x10);
- LCD_WR_REG(0xE1);
- LCD_WR_DATA8(0x10);
- LCD_WR_DATA8(0x0E);
- LCD_WR_DATA8(0x03);
- LCD_WR_DATA8(0x03);
- LCD_WR_DATA8(0x0F);
- LCD_WR_DATA8(0x06);
- LCD_WR_DATA8(0x02);
- LCD_WR_DATA8(0x08);
- LCD_WR_DATA8(0x0A);
- LCD_WR_DATA8(0x13);
- LCD_WR_DATA8(0x26);
- LCD_WR_DATA8(0x36);
- LCD_WR_DATA8(0x00);
- LCD_WR_DATA8(0x0D);
- LCD_WR_DATA8(0x0E);
- LCD_WR_DATA8(0x10);
- LCD_WR_REG(0x3A);
- LCD_WR_DATA8(0x05);
- LCD_WR_REG(0x36);
- if(USE_HORIZONTAL==0)LCD_WR_DATA8(0x08);
- else if(USE_HORIZONTAL==1)LCD_WR_DATA8(0xC8);
- else if(USE_HORIZONTAL==2)LCD_WR_DATA8(0x78);
- else LCD_WR_DATA8(0xA8);
- LCD_WR_REG(0x29);
- }
复制代码- void LCD_Clear(u16 Color)
- {
- u16 i,j;
- LCD_Address_Set(0,0,LCD_W-1,LCD_H-1);
- for(i=0;i<LCD_W;i++)
- {
- for (j=0;j<LCD_H;j++)
- {
- LCD_WR_DATA(Color);
- }
- }
- }
复制代码- void LCD_ShowPicturea(u16 x1,u16 y1,u16 x2,u16 y2)
- {
- int i;
- LCD_Address_Set(x1,y1,x2,y2);
- for(i=0;i<12800;i++)
- {
- LCD_WR_DATA8(gImage_SD[i*2]);
- LCD_WR_DATA8(gImage_SD[i*2+1]);
- }
- }
复制代码- int main(void)
- {
- volatile uint8_t s_KeyValue = 0;
- POWER_SetBodVbatLevel(kPOWER_BodVbatLevel1650mv, kPOWER_BodHystLevel50mv, false);
- BOARD_BootClockFROHF96M();
- CLOCK_EnableClock(kCLOCK_Iocon);
- SystemCoreClockUpdate();
- if (SysTick_Config(SystemCoreClock / 1000U))
- {
- while (1)
- {
- }
- }
- app_oled_init();
- Lcd_Init();
- LCD_Clear(BLACK);
- BACK_COLOR=BLACK;
- LCD_ShowPicturea(0,0,159,79);
- while(1);
- }
复制代码
|