显示屏驱动
屏幕的资料
屏幕尺寸
屏幕尺寸是物理单位以屏幕对角线的长度来计量,计量单位为英寸。
分辨率
分辨率是像素数量,分辨率越高,屏幕越细腻;同样尺寸的屏幕,分辨率越高,即其像素点越多,像素点的尺寸也越小,所以显示同样的内容,会更加细腻
目前大部分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,,12864
这个是一个单色驱动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
}
赞 (0)