[方案相关] 【华大测评】+双色OLED屏显示驱动

[复制链接]
4248|5
 楼主| jinglixixi 发表于 2020-9-27 08:16 | 显示全部楼层 |阅读模式
双色OLED屏是一款0.96'的显示屏,其首行为黄色,其它3行则为蓝色,故称为双色屏,其实在何处显示那种颜色是不能自主控制的。
其实,在HC32F460开发板上要驱动此双色屏并不难,只需对差异点作出修改即可。
为便于对比,这里给出两者存在差异的部分,并以红色标出。
由于双色OLED屏的电源引脚存在不同,故只能以连线的方式来使用,否则完全可以直接插到板子上来用。
此外,由于双色屏比单色屏的显示行数多,故能直接显示4行信息,而单色屏只能显示2行。
1.jpg
双色OLED屏显示效果
// 0.91_OLED:
  1. #define OLED_CMD  0       //写命令
  2. #define OLED_DATA 1      //写数据
  3. #define OLED_MODE 0
  4. #define OLED_ADDS 0x78
  5. #define SIZE 16
  6. #define XLevelL                  0x02
  7. #define XLevelH                 0x10
  8. #define Max_Column       128
  9. #define Max_Row             64
  10. #define     Brightness        0xFF
  11. #define X_WIDTH   128
  12. #define Y_WIDTH   <font color="#ff0000">32</font>   

  13. //初始化SSD1306
  14. void OLED_Init(void)
  15. {      
  16.          Ddl_Delay1ms(100);
  17.          OLED_WR_Byte(0xAE,OLED_CMD);//关闭显示   
  18. <font color="#800080">         OLED_WR_Byte(0x40,OLED_CMD);//---set low column address
  19.          OLED_WR_Byte(0xB0,OLED_CMD);//---set high column address
  20.          OLED_WR_Byte(0xC8,OLED_CMD);//-not offset
  21.          OLED_WR_Byte(0x81,OLED_CMD);//设置对比度
  22.          OLED_WR_Byte(0xff,OLED_CMD);
  23.          OLED_WR_Byte(0xa1,OLED_CMD);//段重定向设置
  24.          OLED_WR_Byte(0xa6,OLED_CMD);//
  25.          OLED_WR_Byte(0xa8,OLED_CMD);//设置驱动路数
  26.          OLED_WR_Byte(0x1f,OLED_CMD);        
  27.          OLED_WR_Byte(0xd3,OLED_CMD);
  28.          OLED_WR_Byte(0x00,OLED_CMD);
  29.          OLED_WR_Byte(0xd5,OLED_CMD);
  30.          OLED_WR_Byte(0xf0,OLED_CMD);        
  31.          OLED_WR_Byte(0xd9,OLED_CMD);
  32.          OLED_WR_Byte(0x22,OLED_CMD);
  33.          OLED_WR_Byte(0xda,OLED_CMD);
  34.          OLED_WR_Byte(0x02,OLED_CMD);
  35.          OLED_WR_Byte(0xdb,OLED_CMD);
  36.          OLED_WR_Byte(0x49,OLED_CMD);
  37.          OLED_WR_Byte(0x8d,OLED_CMD);
  38.          OLED_WR_Byte(0x14,OLED_CMD);</font>
  39.          OLED_WR_Byte(0xaf,OLED_CMD);
  40.          OLED_Clear();
  41. }

// 0.96_OLED:
  1. #define OLED_CMD  0  //写命令
  2. #define OLED_DATA 1  //写数据
  3. #define OLED_MODE 0

  4. #define SIZE 16
  5. #define XLevelL      0x02
  6. #define XLevelH      0x10
  7. #define Max_Column   128
  8. #define Max_Row      64
  9. #define    Brightness 0xFF
  10. #define X_WIDTH   128
  11. #define Y_WIDTH   <font color="#ff0000">64</font>

  12. //初始化SSD1306
  13. void OLED_Init(void)
  14. {
  15.          delay_ms(100);
  16. OLED_WR_Byte(0xAE,OLED_CMD);//--turn off oled panel
  17. <font color="#800080">         OLED_WR_Byte(0x00,OLED_CMD);//---set low column address
  18.          OLED_WR_Byte(0x10,OLED_CMD);//---set high column address
  19.          OLED_WR_Byte(0x40,OLED_CMD);
  20.          OLED_WR_Byte(0x81,OLED_CMD);//--set contrast control register
  21.          OLED_WR_Byte(0xCF,OLED_CMD); // Set SEG Output Current Brightness
  22.          OLED_WR_Byte(0xA1,OLED_CMD);
  23.          OLED_WR_Byte(0xC8,OLED_CMD);
  24.          OLED_WR_Byte(0xA6,OLED_CMD);//--set normal display
  25.          OLED_WR_Byte(0xA8,OLED_CMD);//--set multiplex ratio(1 to 64)
  26.          OLED_WR_Byte(0x3f,OLED_CMD);//--1/64 duty
  27.          OLED_WR_Byte(0xD3,OLED_CMD);
  28.          OLED_WR_Byte(0x00,OLED_CMD);//-not offset
  29.          OLED_WR_Byte(0xd5,OLED_CMD);//--set display clock divide ratio/oscillator frequency
  30.          OLED_WR_Byte(0x80,OLED_CMD);//--set divide ratio, Set Clock as 100 Frames/Sec
  31.          OLED_WR_Byte(0xD9,OLED_CMD);//--set pre-charge period
  32.          OLED_WR_Byte(0xF1,OLED_CMD);//Set Pre-Charge as 15 Clocks & Discharge as 1 Clock
  33.          OLED_WR_Byte(0xDA,OLED_CMD);//--set com pins hardware configuration
  34.          OLED_WR_Byte(0x12,OLED_CMD);
  35.          OLED_WR_Byte(0xDB,OLED_CMD);//--set vcomh
  36.          OLED_WR_Byte(0x40,OLED_CMD);//Set VCOM Deselect Level
  37.          OLED_WR_Byte(0x20,OLED_CMD);//-Set Page Addressing Mode (0x00/0x01/0x02)
  38.          OLED_WR_Byte(0x02,OLED_CMD);//
  39.          OLED_WR_Byte(0x8D,OLED_CMD);//--set Charge Pump enable/disable
  40.          OLED_WR_Byte(0x14,OLED_CMD);//--set(0x10) disable
  41.          OLED_WR_Byte(0xA4,OLED_CMD);// Disable Entire Display On (0xa4/0xa5)
  42.          OLED_WR_Byte(0xA6,OLED_CMD);// Disable Inverse Display On (0xa6/a7)
  43.          OLED_WR_Byte(0xAF,OLED_CMD);//--turn on oled panel</font>
  44.          OLED_WR_Byte(0xAF,OLED_CMD); /*display ON*/
  45.          OLED_Clear();
  46. <font color="#ff0000">         OLED_Set_Pos(0,0);       </font>
  47. }


zhiweijian 发表于 2021-10-6 16:56 | 显示全部楼层
楼主 例程有吗
 楼主| jinglixixi 发表于 2021-10-7 00:23 | 显示全部楼层

http://pan.baidu.com/s/1THzqJacT3UofCUbeRnScUg

http://pan.baidu.com/s/1_RVCynKEFyybAFQwsV0mhg
weifeng90 发表于 2021-10-7 08:58 来自手机 | 显示全部楼层
这个开发板又在送了?
 楼主| jinglixixi 发表于 2021-10-7 09:31 | 显示全部楼层
weifeng90 发表于 2021-10-7 08:58
这个开发板又在送了?

不清楚,离上次送板子有很长时间了!
qgbgzp 发表于 2021-12-31 10:10 | 显示全部楼层
正接触华大,谢谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

521

主题

2949

帖子

39

粉丝
快速回复 在线客服 返回列表 返回顶部