野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 24374|回复: 5

有谁用过中景园的1.3寸IPS屏么,我移植例程只点亮了背光

[复制链接]
发表于 2020-3-2 10:21:58 | 显示全部楼层 |阅读模式
void Lcd_Init(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
       
        RCC_AHB1PeriphClockCmd(LCD_GPIO_CLK, ENABLE);
       
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
        GPIO_InitStructure.GPIO_Pin = LCD_BLK_PIN | LCD_CS_PIN | LCD_RES_PIN | LCD_SDA_PIN | LCD_SCL_PIN;
        GPIO_Init(LCD_GPIO_RORT, &GPIO_InitStructure);

       
        OLED_RES_Clr();
        delay_ms(200);
        OLED_RES_Set();
        delay_ms(200);
        OLED_BLK_Set();
        delay_ms(200);
       
//************* Start Initial Sequence **********//
        LCD_WR_REG(0x36);
        if(USE_HORIZONTAL==0)LCD_WR_DATA8(0x00);
        else if(USE_HORIZONTAL==1)LCD_WR_DATA8(0xC0);
        else if(USE_HORIZONTAL==2)LCD_WR_DATA8(0x70);
        else LCD_WR_DATA8(0xA0);

        LCD_WR_REG(0x3A);
        LCD_WR_DATA8(0x05);

        LCD_WR_REG(0xB2);
        LCD_WR_DATA8(0x0C);
        LCD_WR_DATA8(0x0C);
        LCD_WR_DATA8(0x00);
        LCD_WR_DATA8(0x33);
        LCD_WR_DATA8(0x33);

        LCD_WR_REG(0xB7);
        LCD_WR_DATA8(0x35);  

        LCD_WR_REG(0xBB);
        LCD_WR_DATA8(0x19);

        LCD_WR_REG(0xC0);
        LCD_WR_DATA8(0x2C);

        LCD_WR_REG(0xC2);
        LCD_WR_DATA8(0x01);

        LCD_WR_REG(0xC3);
        LCD_WR_DATA8(0x12);   

        LCD_WR_REG(0xC4);
        LCD_WR_DATA8(0x20);  

        LCD_WR_REG(0xC6);
        LCD_WR_DATA8(0x0F);   

        LCD_WR_REG(0xD0);
        LCD_WR_DATA8(0xA4);
        LCD_WR_DATA8(0xA1);

        LCD_WR_REG(0xE0);
        LCD_WR_DATA8(0xD0);
        LCD_WR_DATA8(0x04);
        LCD_WR_DATA8(0x0D);
        LCD_WR_DATA8(0x11);
        LCD_WR_DATA8(0x13);
        LCD_WR_DATA8(0x2B);
        LCD_WR_DATA8(0x3F);
        LCD_WR_DATA8(0x54);
        LCD_WR_DATA8(0x4C);
        LCD_WR_DATA8(0x18);
        LCD_WR_DATA8(0x0D);
        LCD_WR_DATA8(0x0B);
        LCD_WR_DATA8(0x1F);
        LCD_WR_DATA8(0x23);

        LCD_WR_REG(0xE1);
        LCD_WR_DATA8(0xD0);
        LCD_WR_DATA8(0x04);
        LCD_WR_DATA8(0x0C);
        LCD_WR_DATA8(0x11);
        LCD_WR_DATA8(0x13);
        LCD_WR_DATA8(0x2C);
        LCD_WR_DATA8(0x3F);
        LCD_WR_DATA8(0x44);
        LCD_WR_DATA8(0x51);
        LCD_WR_DATA8(0x2F);
        LCD_WR_DATA8(0x1F);
        LCD_WR_DATA8(0x1F);
        LCD_WR_DATA8(0x20);
        LCD_WR_DATA8(0x23);

        LCD_WR_REG(0x21);

        LCD_WR_REG(0x11);
        //Delay (120);

        LCD_WR_REG(0x29);
}
例程是用模拟SPI的


RS$QNWRS~2P9)QFL2%SM6YJ.png
回复

使用道具 举报

 楼主| 发表于 2020-3-2 10:23:15 | 显示全部楼层
//-----------------OLED端口定义----------------                                            
#define OLED_SCLK_Clr() GPIO_ResetBits(LCD_GPIO_RORT,LCD_SCL_PIN)//CLK
#define OLED_SCLK_Set() GPIO_SetBits(LCD_GPIO_RORT,LCD_SCL_PIN)

#define OLED_SDIN_Clr() GPIO_ResetBits(LCD_GPIO_RORT,LCD_SDA_PIN)//DIN
#define OLED_SDIN_Set() GPIO_SetBits(LCD_GPIO_RORT,LCD_SDA_PIN)

#define OLED_RES_Clr() GPIO_ResetBits(LCD_GPIO_RORT,LCD_RES_PIN)//RES
#define OLED_RES_Set() GPIO_SetBits(LCD_GPIO_RORT,LCD_RES_PIN)

#define OLED_DC_Clr() GPIO_ResetBits(LCD_GPIO_RORT,LCD_CS_PIN)//DC
#define OLED_DC_Set() GPIO_SetBits(LCD_GPIO_RORT,LCD_CS_PIN)

#define OLED_BLK_Clr()  GPIO_ResetBits(LCD_GPIO_RORT,LCD_BLK_PIN)//BLK
#define OLED_BLK_Set()  GPIO_SetBits(LCD_GPIO_RORT,LCD_BLK_PIN)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-2 10:23:49 | 显示全部楼层
/******************************************************************************
      函数说明:LCD串行数据写入函数
      入口数据:dat  要写入的串行数据
      返回值:  无
******************************************************************************/
void LCD_Writ_Bus(u8 dat)
{       
        u8 i;                          
        for(i=0;i<8;i++)
        {                          
                OLED_SCLK_Clr();
                if(dat&0x80)
                {
                        OLED_SDIN_Set();
                }
                else
                {
                        OLED_SDIN_Clr();
                }
                OLED_SCLK_Set();
                dat<<=1;   
        }                       
}

/******************************************************************************
      函数说明:LCD写入数据
      入口数据:dat 写入的数据
      返回值:  无
******************************************************************************/
void LCD_WR_DATA8(u8 dat)
{
        OLED_DC_Set();//写数据
        LCD_Writ_Bus(dat);
}


/******************************************************************************
      函数说明:LCD写入数据
      入口数据:dat 写入的数据
      返回值:  无
******************************************************************************/
void LCD_WR_DATA(u16 dat)
{
        OLED_DC_Set();//写数据
        LCD_Writ_Bus(dat>>8);
        LCD_Writ_Bus(dat);
}


/******************************************************************************
      函数说明:LCD写入命令
      入口数据:dat 写入的命令
      返回值:  无
******************************************************************************/
void LCD_WR_REG(u8 dat)
{
        OLED_DC_Clr();//写命令
        LCD_Writ_Bus(dat);
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-2 10:29:01 | 显示全部楼层
int main(void)
{
        u8 i,m;
         float t=0;
         delay_init(180);                     //延时函数初始化          
         Lcd_Init();                        //初始化OLED  
         LCD_Clear(WHITE);
         BACK_COLOR=WHITE;
         while(1)
         {
                         LCD_ShowChinese(10,0,0,32,RED);   //中
                        LCD_ShowChinese(45,0,1,32,RED);   //景
                        LCD_ShowChinese(80,0,2,32,RED);   //园
                        LCD_ShowChinese(115,0,3,32,RED);  //电
                        LCD_ShowChinese(150,0,4,32,RED);  //子
                 
                         LCD_ShowChinese(10,75,0,16,RED);   //中
                        LCD_ShowChinese(45,75,1,16,RED);   //景
                        LCD_ShowChinese(80,75,2,16,RED);   //园
                        LCD_ShowChinese(115,75,3,16,RED);  //电
                        LCD_ShowChinese(150,75,4,16,RED);  //子
                        LCD_ShowString(10,35,"1.3 TFT SPI 240*320",RED);
                        LCD_ShowString(10,55,"LCD_W:",RED);        LCD_ShowNum(70,55,LCD_W,3,RED);
                        LCD_ShowString(110,55,"LCD_H:",RED);LCD_ShowNum(160,55,LCD_H,3,RED);
                  for(i=0;i<5;i++)
                  {
                                for(m=0;m<6;m++)
                                {
                                  LCD_ShowPicture(0+m*40,120+i*40,39+m*40,159+i*40);
                                }
                  }
                        while(1)
                        {
                                LCD_ShowNum1(80,95,t,5,RED);
                    t+=0.01;
      }
   }
}
回复 支持 反对

使用道具 举报

发表于 2020-4-1 13:48:53 | 显示全部楼层
我之前用过0.93寸的屏,

附件传不上去,难搞,你需要的话留下邮箱
回复 支持 反对

使用道具 举报

发表于 2021-3-10 19:42:57 | 显示全部楼层
请问您的问题解决了么,我也碰到了相同的问题
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-3-29 03:37 , Processed in 0.043033 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表