📄 oled.c
字号:
#include "..\includes\includes.h"
TYPE_OLED_PARAM oledParam;
const INT8U OLED_PARAM[OLED_SET_REG_MAX]=
{
/*INIT_STAT*/ 0x00,
/*INIT_RED_GAIN*/ _OLED_GAIN,
/*INIT_RED_OFFSET*/ _OLED_OFFSET,
/*INIT_GREEN_GAIN*/ _OLED_GAIN,
/*INIT_GREEN_OFFSET*/ _OLED_OFFSET,
/*INIT_BLUE_GAIN*/ _OLED_GAIN,
/*INIT_BLUE_OFFSET*/ _OLED_OFFSET,
/*INIT_MONO_GAIN*/ _OLED_GAIN,
/*INIT_MONO_OFFSET*/ _OLED_OFFSET,
/*INIT_V_MODE_SVGAPLUS*/ 0x00,
/*INIT_H_MODE_SVGAPLUS*/ 0x02,
/*INIT_BRIGHTNESS_L*/ 0x00,
/*INIT_BRIGHTNESS_U*/ 0x02,
/*INIT_H_RATE_L*/ 0x00,
/*INIT_H_RATE_U*/ 0x80,
/*INIT_PLL_L*/ 0x1E,
/*INIT_PLL_U*/ 0x0C,
/*INIT_PIF*/ 0x0C,
/*INIT_PI2*/ 0x00,
/*INIT_H_START*/ 0xD4,
/*INIT_V_START*/ 0x19,
/*INIT_HBLK*/ 0xD8,
/*INIT_HDEL*/ 0x0C,
/*INIT_PDWN*/ 0x02,
/*INIT_ATB*/ 0x80,
/*INIT_AMTEST*/ 0x00,
/*INIT_TRIM*/ 0x00
};
/*
函数名称:oLedOperator
功能:OLED亮度对比度调节
接口参数:bVALUE,gVALUE,参数位于OLED控制的数据结构中。
*/
void oLedOperator(INT8U type)
{
INT8U data;
INT8U addr;
INT8U i;
switch(type)
{ case TYPE_OLED_BRIGHT:
{ data =oledBright;
addr=0x00;
I2C_WriteNByte(I2C_CHIP_DIGPOT1,ONE_BYTE_SUBA,addr,&data,1);
break;
}
case TYPE_OLED_GRAY:
{ data =oledGray;
addr=0x80;
I2C_WriteNByte(I2C_CHIP_DIGPOT1,ONE_BYTE_SUBA,addr,&data,1);
break;
}
case TYPE_OLED_GAIN:
{ data =oledGain;
addr= 0x01;
for(i=0;i<4;i++)
{ I2C_WriteNByte(I2C_CHIP_OLED,ONE_BYTE_SUBA,addr+i*2,&data,1);
DelayNms(10);
}
break;
}
case TYPE_OLED_OFFSET:
{ data =oledOffset;
addr= 0x02;
for(i=0;i<4;i++)
{ I2C_WriteNByte(I2C_CHIP_OLED,ONE_BYTE_SUBA,addr+i*2,&data,1);
DelayNms(10);
}
break;
}
default: return;
}
}
void InitOled(void)
{
INT8U i;
INT8U data;
Oled_Reset_On();
DelayNms(10); //引脚复位并延时
Oled_Reset_Off();
DelayNms(10);
for (i=0;i<OLED_SET_REG_MAX;i++)
{ data =OLED_PARAM[i];
I2C_WriteNByte(I2C_CHIP_OLED,ONE_BYTE_SUBA,i,&data,1);
DelayNms(2);
}
oLedOperator(TYPE_OLED_GAIN);
DelayNms(2);
oLedOperator(TYPE_OLED_OFFSET);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -