【新提醒】基于HC32L110开发板的OLED屏显示

 本帖最后由 jinglixixi 于 2020-10-23 10:10 编辑

有了程序下载和点亮LED灯的基础,我们就可以利用I/O口来尝试驱动OLED屏了,这里选的是I2C接口的OLED屏,只需占用2个I/O口,故十分节省资源,对于像HC32L110这样原本就引脚不多的芯片更是如此。
那么选哪个引脚来连接OLED屏呢?
这里选取的是P35和P36,其中P35--- CLK,P36--- DIN。
配置这2个引脚为输出功能的函数为:
  1. void App_OledInit(void)
  2. {
  3. Gpio_InitIOExt(3, 5, GpioDirOut, TRUE, FALSE, TRUE, FALSE);
  4. Gpio_InitIOExt(3, 6, GpioDirOut, TRUE, FALSE, TRUE, FALSE);
  5. }

复制代码

是这2个引脚输出高低电平的语句为:

#define OLED_SCLK_Set()   Gpio_SetIO(3, 5, TRUE)
#define OLED_SCLK_Clr()   Gpio_SetIO(3, 5, FALSE)
#define OLED_SDIN_Set()   Gpio_SetIO(3, 6, TRUE)
#define OLED_SDIN_Clr()   Gpio_SetIO(3, 6, FALSE)
该显示屏的初始化函数为:
  1. void OLED_Init(void)
  2. {
  3. OLED_SCLK_Set();
  4. OLED_SDIN_Set();
  5. delay1ms(800);
  6. OLED_WR_Byte(0xAE,OLED_CMD);//--display off
  7. OLED_WR_Byte(0x40,OLED_CMD);//--set start line address
  8. OLED_WR_Byte(0xB0,OLED_CMD);//--set page address
  9. OLED_WR_Byte(0xC8,OLED_CMD);//Com scan direction
  10. OLED_WR_Byte(0x81,OLED_CMD); // contract control
  11. OLED_WR_Byte(0xFF,OLED_CMD);//--128
  12. OLED_WR_Byte(0xA1,OLED_CMD);//set segment remap
  13. OLED_WR_Byte(0xA6,OLED_CMD);//--normal / reverse
  14. OLED_WR_Byte(0xA8,OLED_CMD);//--set multiplex ratio(1 to 64)
  15. OLED_WR_Byte(0x1F,OLED_CMD);//--1/32 duty
  16. OLED_WR_Byte(0xD3,OLED_CMD);//-set display offset
  17. OLED_WR_Byte(0x00,OLED_CMD);//
  18. OLED_WR_Byte(0xD5,OLED_CMD);//set osc division
  19. OLED_WR_Byte(0xf0,OLED_CMD);//
  20. OLED_WR_Byte(0xD9,OLED_CMD);//Set Pre-Charge Period
  21. OLED_WR_Byte(0x22,OLED_CMD);//
  22. OLED_WR_Byte(0xDA,OLED_CMD);//set com pin configuartion
  23. OLED_WR_Byte(0x02,OLED_CMD);//
  24. OLED_WR_Byte(0xDB,OLED_CMD);//set Vcomh
  25. OLED_WR_Byte(0x49,OLED_CMD);//
  26. OLED_WR_Byte(0x8D,OLED_CMD);//set charge pump enable
  27. OLED_WR_Byte(0x14,OLED_CMD);//
  28. OLED_WR_Byte(0xAF,OLED_CMD);//--turn on oled panel
  29. OLED_Clear();
  30. }

复制代码

实现图1和图2显示效果的主程序为:

  1. int32_t main(void)
  2. {
  3. delay1ms(100);
  4. OLED_Init();
  5. OLED_Clear();
  6. OLED_ShowString(0,0,"HC32L110 TEST",16);
  7. OLED_ShowString(0,2,"OLED DISPLAY",16);
  8. delay1ms(2000);
  9. OLED_Clear();
  10. OLED_ShowCHinese(0, 0, 3);
  11. OLED_ShowCHinese(16, 0, 4);
  12. OLED_ShowCHinese(32, 0, 5);
  13. OLED_ShowCHinese(48, 0, 6);
  14. OLED_ShowCHinese(64, 0, 7);
  15. OLED_ShowCHinese(0, 2, 8);
  16. OLED_ShowCHinese(16, 2, 9);
  17. OLED_ShowCHinese(32, 2, 10);
  18. OLED_ShowCHinese(48, 2, 11);
  19. OLED_ShowCHinese(64, 2, 12);
  20. while (1);
  21. }

复制代码

图1 显示字符串

图2 显示汉字
(0)

相关推荐

  • IIC通信协议代码分享及调试过程中的一些小误区分享

    IIC通信协议代码分享及调试过程中的一些小误区分享

  • 高通字库芯片GT20L16S1Y驱动 0.96寸 OLED 任意显示中文

    连续两个月的加班,给ODM客户生产温控器订单,今天终于顺利发货,对于工程师出身的我,终于可以对着电脑,消停几天,研究技术,分享技术了,闲话少说,直接进入正题: 半年前有个老客户介绍个中央某院的项目,我 ...

  • 520了,用32做个简单的小程序

    此文转载自:https://blog.csdn.net/k_ksy/article/details/106233645 520到了,看着朋友圈里的花式秀恩爱,平常午餐最爱吃的泡面都变得不那么香了.于是 ...

  • OLED SH1106通过I2C显示

    预备知识 1. I2C基本原理 2. SH1106通过I2C读写 OLED初始化 #define OLED_CMD 0#define OLED_DATA 1/********************* ...

  • 扩展单片机的GPIO实现多个继电器的控制

    大约在2016年的时候,我接了一个私活,做快递柜的开锁控制方案,柜锁的数量没有明确要求,但是要求可扩展可配置.正巧,这两天又有网友咨询单片机控制多个继电器的控制方案.顺带着再介绍一下我常用的扩展方案以 ...

  • 【新提醒】HC32L136开发板的OLED驱动及应用

    在HC32L136开发板上配有一个笔段式的液晶屏,但无奈的是厂家却没提供一个能直接调用的显示函数. 在没解决该显示屏的显示函数前,先以轻车熟路的OLED屏来实现显示的问题. 由于手头的OLED屏是一款 ...

  • 【新提醒】HC32F460开发板数据采样及显示

    HC32F460内置有2个独立的12位ADC,并在开发板上配有10K的电位器以模拟电位高低,见图1所示. 由原理图可知该电位器的引脚被连到MCU的PC0上,即ADC12_IN10. 图1 电位器连接 ...

  • 【新提醒】基于HC32V103开发板的OLED显示驱动

    OLED屏是一种自身发光的显示器件,它有许多种类,如按色彩分,可分为单色屏.双色屏及彩色屏等:按尺寸分,可分为0.91'.0.96'屏等:按接口方式分,可分为I2C接口和SPI接口等. 其中,以I2C ...

  • 【新提醒】HC32F460开发板OLED屏显示驱动

    与其他的开发板不同,在HC32F460开发板上配置了小巧别致的I2C接口OLED屏. 有了它,我们需要显示的数据和信息就不必完全借助于串口通信了! 好像是华大要测试测评者的水平,尽管开发板配置了OLE ...

  • 【新提醒】HC32L072开发板之 KEY控制LED

    开发板上LED与KEY的原理图如图1所示,可以用SW1和SW2分别控制DS1和DS2.其程序如下: 图1  LED与KEY原理图 实现控制功能的程序如下: /********************* ...

  • 【新提醒】HC32L072开发板驱动 I2C接口光照传感器

    单有了显示单元还只是解决了人机交互的部分问题,要让机器具备感知能力就离不开传感器.传感器的种类有许多种,BH1750光照传感器就是其中的一种,它是一种基于I2C接口的数字式传感器,因此无需对获取的数据 ...

  • 【新提醒】HC32F030开发板上较接近完美彩屏显示

    HC32F030有着64K Flash和8KRAM,可以支持显示屏显示一定尺寸的图片和掌握信息. 有了前面双色OLED屏显示的基础上,就可以调试让HC32F030开发板显示图片和掌握信息了. 为了便于 ...

  • 【新提醒】HC32F030开发板所实现的电子时钟

    HC32F030与HC32L136不同,它自身没有内置硬件的万年历 RTC,要想实现与RTC类似的功能只能借助于systick,利用秒信号来进行计时,并通过程序来完成时间的进制转换. 实现电子时钟功能 ...

  • 【新提醒】HC32F460开发板的程序下载及LED控制

    我使用的HC32F460开发板是基于HC32F460JETA,共有48个引脚.所使用的开发工具,则是第三方的雅特力调试下载器AT_LINK. 该开发板有别于原厂的HC32F460开发板,其LED灯的原 ...