OKdo E1開發板是一款以硬幣大小而為人稱道的開發板,它體積小巧那自然要為它配置一塊同樣小巧的顯示屏才稱得上是絕配,下面就通過I/O口來模擬I2C通訊了,使得OLED屏能夠顯示出信息來。 OLED屏與MCU的連接關系為: SCL---PIO0_7 SDA---PIO1_0
相關引腳輸出高低電平的語句定義: #define OLED_SCLK_Clr() GPIO_PinWrite(GPIO, 0u, 7u, 0) #define OLED_SCLK_Set() GPIO_PinWrite(GPIO, 0u, 7u, 1) #define OLED_SDIN_Clr() GPIO_PinWrite(GPIO, 1u, 0u, 0) #define OLED_SDIN_Set() GPIO_PinWrite(GPIO, 1u, 0u, 1) OLED屏引腳配置函數: - 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);
- }
復制代碼 OLED屏初始化函數: - void OLED_Init(void)
- {
- Write_IIC_Command(0xAE); //display off
- Write_IIC_Command(0x20); //Set Memory Addressing Mode
- Write_IIC_Command(0x10);
- Write_IIC_Command(0xb0);//Set Page Start Address for Page Addressing Mode,0-7
- Write_IIC_Command(0xc8);//Set COM Output Scan Direction
- Write_IIC_Command(0x00);//---set low column address
- Write_IIC_Command(0x10);//---set high column address
- Write_IIC_Command(0x40);//--set start line address
- Write_IIC_Command(0x81);//--set contrast control register
- Write_IIC_Command(0xdf);
- Write_IIC_Command(0xa1);//--set segment re-map 0 to 127
- Write_IIC_Command(0xa6);//--set normal display
- Write_IIC_Command(0xa8);//--set multiplex ratio(1 to 64)
- Write_IIC_Command(0x3F);//
- Write_IIC_Command(0xa4);//0xa4,Output follows RAM content;0xa5,Output ignores RAM content
- Write_IIC_Command(0xd3);//-set display offset
- Write_IIC_Command(0x00);//-not offset
- Write_IIC_Command(0xd5);//--set display clock divide ratio/oscillator frequency
- Write_IIC_Command(0xf0);//--set divide ratio
- Write_IIC_Command(0xd9);//--set pre-charge period
- Write_IIC_Command(0x22); //
- Write_IIC_Command(0xda);//--set com pins hardware configuration
- Write_IIC_Command(0x12);
- Write_IIC_Command(0xdb);//--set vcomh
- Write_IIC_Command(0x20);//0x20,0.77xVcc
- Write_IIC_Command(0x8d);//--set DC-DC enable
- Write_IIC_Command(0x14);//
- Write_IIC_Command(0xaf);//--turn on oled panel
- }
復制代碼 OLED屏顯示主程序: - int main(void)
- {
- POWER_SetBodVbatLevel(kPOWER_BodVbatLevel1650mv, kPOWER_BodHystLevel50mv, false);
- CLOCK_EnableClock(kCLOCK_Gpio0);
- CLOCK_EnableClock(kCLOCK_Gpio1);
- BOARD_BootClockFROHF96M();
- app_oled_init();
- OLED_Init();
- OLED_Clear();
- OLED_ShowString(0,0,"OKDOE1 TEST",16);
- OLED_ShowString(0,2,"OLED Display",16);
- OLED_ShowString(0,4,"jinglixixi",16);
- OLED_ShowString(0,6,"2020.11.2",16);
- while (1);
- }
復制代碼
經程序的編譯下載,其運行效果如圖所示。
v.jpg (22.13 KB, 下載次數: 60)
下載附件
2020-11-3 00:17 上傳
OLED屏顯示效果
|