标题: OKdo E1开发板驱动双色OLED屏显示 [打印本页]

作者: jinglixixi    时间: 2020-11-3 00:24
标题: OKdo E1开发板驱动双色OLED屏显示
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屏引脚配置函数:
  1. void app_oled_init(void)
  2. {
  3. gpio_pin_config_t   gpioPinConfig;
  4. gpioPinConfig.pinDirection = kGPIO_DigitalOutput;
  5. gpioPinConfig.outputLogic  = 1u;
  6. GPIO_PinInit (GPIO, 0u, 7u, &gpioPinConfig);
  7. GPIO_PinInit (GPIO, 1u, 0u, &gpioPinConfig);
  8. }
复制代码
OLED屏初始化函数:
  1. void OLED_Init(void)
  2. {
  3. Write_IIC_Command(0xAE); //display off
  4. Write_IIC_Command(0x20); //Set Memory Addressing Mode
  5. Write_IIC_Command(0x10);
  6. Write_IIC_Command(0xb0);//Set Page Start Address for Page Addressing Mode,0-7
  7. Write_IIC_Command(0xc8);//Set COM Output Scan Direction
  8. Write_IIC_Command(0x00);//---set low column address
  9. Write_IIC_Command(0x10);//---set high column address
  10. Write_IIC_Command(0x40);//--set start line address
  11. Write_IIC_Command(0x81);//--set contrast control register
  12. Write_IIC_Command(0xdf);
  13. Write_IIC_Command(0xa1);//--set segment re-map 0 to 127
  14. Write_IIC_Command(0xa6);//--set normal display
  15. Write_IIC_Command(0xa8);//--set multiplex ratio(1 to 64)
  16. Write_IIC_Command(0x3F);//
  17. Write_IIC_Command(0xa4);//0xa4,Output follows RAM content;0xa5,Output ignores RAM content
  18. Write_IIC_Command(0xd3);//-set display offset
  19. Write_IIC_Command(0x00);//-not offset
  20. Write_IIC_Command(0xd5);//--set display clock divide ratio/oscillator frequency
  21. Write_IIC_Command(0xf0);//--set divide ratio
  22. Write_IIC_Command(0xd9);//--set pre-charge period
  23. Write_IIC_Command(0x22); //
  24. Write_IIC_Command(0xda);//--set com pins hardware configuration
  25. Write_IIC_Command(0x12);
  26. Write_IIC_Command(0xdb);//--set vcomh
  27. Write_IIC_Command(0x20);//0x20,0.77xVcc
  28. Write_IIC_Command(0x8d);//--set DC-DC enable
  29. Write_IIC_Command(0x14);//
  30. Write_IIC_Command(0xaf);//--turn on oled panel
  31. }
复制代码
OLED屏显示主程序:
  1. int main(void)
  2. {
  3. POWER_SetBodVbatLevel(kPOWER_BodVbatLevel1650mv, kPOWER_BodHystLevel50mv, false);
  4. CLOCK_EnableClock(kCLOCK_Gpio0);
  5. CLOCK_EnableClock(kCLOCK_Gpio1);
  6. BOARD_BootClockFROHF96M();
  7. app_oled_init();
  8. OLED_Init();
  9. OLED_Clear();
  10. OLED_ShowString(0,0,"OKDOE1 TEST",16);
  11. OLED_ShowString(0,2,"OLED Display",16);
  12. OLED_ShowString(0,4,"jinglixixi",16);
  13. OLED_ShowString(0,6,"2020.11.2",16);
  14. while (1);
  15. }
复制代码

经程序的编译下载,其运行效果如图所示。

OLED屏显示效果





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1