//==========OLED 2.4" parallel 24 bits RGB interface==========//
#define S6E63D6_ID 0x70 //0111,0 ID RS R/W
void SPI_Write_Command(uWORD wAddr)
{
uCHAR j,k;
uCHAR StartByte=S6E63D6_ID;
Set_SPIEN_Low;
for(j = 0; j < SPI_SHORT_TIME; j++) ;
Set_SPISCK_High; //make sure SCk is High
for(j = 0; j < SPI_SHORT_TIME; j++) ;
for(k=0; k<8; k++) //send start byte
{
Set_SPISCK_Low;
if(StartByte&0x80) Set_SPISDA_High;
else Set_SPISDA_Low;
for(j = 0; j < SPI_SHORT_TIME; j++) ;
Set_SPISCK_High;
for(j = 0; j < SPI_SHORT_TIME; j++);
StartByte<<=1;
}
for(k = 0; k < 16; k++) //send 16 bits data
{
Set_SPISCK_Low;
if(wAddr&0x8000) Set_SPISDA_High;
else Set_SPISDA_Low;
for(j = 0; j < SPI_SHORT_TIME; j++) ;
Set_SPISCK_High;
for(j = 0; j < SPI_SHORT_TIME; j++);
wAddr<<=1;
}
Set_SPISDA_High;
for(j = 0; j < SPI_SHORT_TIME; j++);
Set_SPIEN_High;
for(j = 0; j < SPI_SHORT_TIME; j++);
}
void SPI_Write_Data(uWORD wData)
{
uCHAR j,k;
uCHAR StartByte=(S6E63D6_ID|0x02);
Set_SPIEN_Low;
for(j = 0; j < SPI_SHORT_TIME; j++) ;
Set_SPISCK_High; //make sure SCk is High
for(j = 0; j < SPI_SHORT_TIME; j++) ;
for(k=0; k<8; k++) //send start byte
{
Set_SPISCK_Low;
if(StartByte&0x80) Set_SPISDA_High;
else Set_SPISDA_Low;
for(j = 0; j < SPI_SHORT_TIME; j++) ;
Set_SPISCK_High;
for(j = 0; j < SPI_SHORT_TIME; j++);
StartByte<<=1;
}
for(k = 0; k < 16; k++) //send 16 bits data
{
Set_SPISCK_Low;
if(wData&0x8000) Set_SPISDA_High;
else Set_SPISDA_Low;
for(j = 0; j < SPI_SHORT_TIME; j++) ;
Set_SPISCK_High;
for(j = 0; j < SPI_SHORT_TIME; j++);
wData<<=1;
}
Set_SPISDA_High;
for(j = 0; j < SPI_SHORT_TIME; j++);
Set_SPIEN_High;
for(j = 0; j < SPI_SHORT_TIME; j++);
}
void SPI_Write_Register(uWORD wAddr, uWORD wData)
{
SPI_Write_Command(wAddr);
SPI_Write_Data(wData);
}
void CMEL_DriverIC_Initial(void)
{
//===========Gamma Setting ===============//
SPI_Write_Register(0x0070, 0x2580);
SPI_Write_Register(0x0071, 0x2780);
SPI_Write_Register(0x0072, 0x3380);
SPI_Write_Register(0x0073, 0x1d18);
SPI_Write_Register(0x0074, 0x1f15);
SPI_Write_Register(0x0075, 0x2419);
SPI_Write_Register(0x0076, 0x1a14);
SPI_Write_Register(0x0077, 0x211a);
SPI_Write_Register(0x0078, 0x2013);
SPI_Write_Register(0x0002, 0x0182); //RGB interface control
SPI_Write_Register(0x00F8, 0x0014); //Power gen3,VGH4~VGH0
SPI_Write_Register(0x00F9, 0x0014); //Power gen4,VGL4~VGL0
#ifdef VERTICAL_DISPLAY
SPI_Write_Register(0x0003, 0x8020); //Entry mode
#else
SPI_Write_Register(0x0003, 0x8031); //Entry mode
#endif
SPI_Write_Register(0x0010, 0x0000); //Stand by mode off
SPI_Write_Register(0x0005, 0x0001); //Display control1, display on
#ifdef VERTICAL_DISPLAY
SPI_Write_Register(0x0020, 0x00ef);
//SPI_Write_Register(0x0021, 0x013f);
#endif
SPI_Write_Command(0x0022); //This command is very important!
}
RGB_Interface_Init_2_8.rar_ILI9341 rgb SPI_OLED SPI_RGB interfac
版权申诉
194 浏览量
2022-09-20
15:39:19
上传
评论
收藏 894B RAR 举报
小波思基
- 粉丝: 72
- 资源: 1万+
最新资源
- tiamo软件教程.doc
- nvm管理Nodejs多版本工具
- Unit1Howcanwebecomegoodlearners知识点整理(良心出品必属精品).doc
- 基于JSP在线维他茶饮销售网站平台源码.zip
- web学习笔记.doc
- 基于pytorch+Unet进行MRI肝脏图像分割源码+数据集+模型.zip
- 在Android Studio中开发一个Android App项目步骤
- 基于yolov8实现进行物体跟踪源码.zip
- Java多线程学习Java多线程学习Java多线程学习Java多线程学习.txt
- 算法数据结构-动态规划算法(Dynamic Programming)超详细总结加应用案例讲解.txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈