显示屏驱动

屏幕的资料

屏幕尺寸

屏幕尺寸是物理单位以屏幕对角线的长度来计量,计量单位为英寸。

分辨率

分辨率是像素数量,分辨率越高,屏幕越细腻;同样尺寸的屏幕,分辨率越高,即其像素点越多,像素点的尺寸也越小,所以显示同样的内容,会更加细腻
目前大部分OLED屏幕为0.96寸,分辨率是12864(水平像素×垂直像素),即128个点64个点

程序控制

首先需要确定显示屏的驱动IC(Driver IC),不同的IC有不同的控制方法,大部分都一样的
COM可以说是“公共端”,提供稳定的供电,而SEG是指“段”segment,也就是“扫描端”,通过COM与SEG的组合,点亮不同的LCD或LED显示段。

水平地址模式(整个屏幕)

水平正向扫描

垂直地址模式(整个屏幕)

垂直正向扫描

屏幕选择更新

在这里插入图片描述

其他的一些模式(需要看驱动芯片手册)

水平反向扫描
在这里插入图片描述

滚动效果

左右滚动/上下滚动

Buffer空间大小

SSD1327,128128
这个是一个有16位灰度的驱动IC,可以设置屏幕的灰度值,一个字节等于两个水平像素点,所以刷新一个屏幕需要总buffer空间(128/2)128=8192
SSD1306,,128
64
这个是一个单色驱动IC,分page和col,一个字节等于一个page的一列,所以刷新一个屏幕需要总buffer空间128
(64/8)=1024
在这里插入图片描述

void OLED_IC_Init()
{
	//显示开关
	OLED_Write_Command(0xAE); //Set Display Off
	
	//设置时钟分频因子,震荡频率
	OLED_Write_Command(0xD5); //display divide ratio/osc. freq. mode
	OLED_Write_Command(0x83);//
	
	//设置驱动行数(总行数)
	OLED_Write_Command(0xA8); //multiplex ration mode:63
	OLED_Write_Command(0x3F);//3F=64
	
	//显示偏移(RAM显示行偏移,全部显示的)
	OLED_Write_Command(0xD3); //Set Display Offset
	OLED_Write_Command(0x00);
	
	//显示开始行(当为x时,RAM行x映射到COM0,以此类推;不会全部显示)
	OLED_Write_Command(0x40); //Set Display Start Line
	
	//显示开始列
	OLED_Write_Command(0xA1); //Segment Remap
	/*
	//SSD1327
	//设置列
    OLED_Write_Command(0x15);    //   set column address
    OLED_Write_Command(0x00);    //  start column   0
    OLED_Write_Command(0x3f);    //  end column   127

	//设置行
    OLED_Write_Command(0x75);    //   set row address
    OLED_Write_Command(0x00);    //  start row   0
    OLED_Write_Command(0x7f);    //  end row   127
	*/
	/*
	//SP5040
	//DC-DC控制开关
	OLED_Write_Command(0xAD); //DC-DC Control Mode Set
	OLED_Write_Command(0x8B); //DC-DC ON/OFF Mode `Set
	
	//
	OLED_Write_Command(0x33); //Set Pump voltage value
	*/
	//COM扫描方式
	OLED_Write_Command(0xC8); //Set COM Output Scan Direction
	
	//设置COM硬件引脚配置
	OLED_Write_Command(0xDA); //common pads hardware: alternative
	OLED_Write_Command(0x12);
	
	//对比度(亮度)
	OLED_Write_Command(0x81); //contrast control
	OLED_Write_Command(0x80);//1-255,默认0x7F/80
	
	//预充电周期?
	OLED_Write_Command(0xD9); //set pre-charge period
	OLED_Write_Command(0x1F);
	
	//设置VCOM 电压倍率?
	OLED_Write_Command(0xDB); //deselect level mode
	OLED_Write_Command(0x2D);
	
	//全局显示开启
	OLED_Write_Command(0xA4); //跟随RAM,Set Entire Display On/Off
	
	//显示方式
	OLED_Write_Command(0xA6); //Set Normal Display
	
	//显示开关
	Write_OLED_Write_Commandommand(0xAF); //Set Display On
}
  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值