找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2001|回复: 0
打印 上一主题 下一主题
收起左侧

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屏显示效果

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表