OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2582|回复: 0

为什么hx8352显示屏始终不亮啊

[复制链接]

3

主题

13

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2018-3-28
在线时间
17 小时
发表于 2018-4-2 11:58:54 | 显示全部楼层 |阅读模式
#define        LCD_CS_SET  GPIOA->BSRR=1<<15   //片选端口               
#define        LCD_RS_SET        GPIOA->BSRR=1<<12    //数据/命令            
#define        LCD_WR_SET        GPIOA->BSRR=1<<11    //写数据                       
#define        LCD_RD_SET        GPIOA->BSRR=1<<7    //读数据                         
                                                                    
#define        LCD_CS_CLR  GPIOA->BRR=1<<15     //片选端口               
#define        LCD_RS_CLR        GPIOA->BRR=1<<12     //数据/命令            
#define        LCD_WR_CLR        GPIOA->BRR=1<<11     //写数据                         
#define        LCD_RD_CLR        GPIOA->BRR=1<<7     //读数据                       
                                                                    

//PB0~15,作为数据线
#define DATAOUT(x) GPIOB->ODR=x; //数据输出
#define DATAIN     GPIOB->IDR;   //数据输入
//////////////////////////////////////////////////////////////////////
//画笔颜色
#define WHITE                  0xFFFF        //白色
#define BLACK                  0x0000        //黑色  
#define BLUE                  0x001F //蓝色
#define BRED             0XF81F        //蓝红色
#define GRED                          0X8B42        //青红色
#define GBLUE                         0X07FF        //青蓝色
#define RED                    0xF800        //红色
#define MAGENTA                0xF81F        //品红
#define GREEN                  0x07E0        //绿色
#define CYAN                   0x7FFF        //青绿色
#define YELLOW                 0xFFE0        //黄色
#define BROWN                          0XBC40 //棕色
#define BRRED                          0XFC07 //棕红色
#define GRAY                           0X8430 //灰色
//GUI颜色

#define DARKBLUE               0X01CF        //深蓝色
#define LIGHTBLUE               0X7D7C        //浅蓝色  
#define GRAYBLUE                0X5458 //灰蓝色
//以上三色为PANEL的颜色

#define LIGHTGREEN              0X841F //浅绿色
#define LIGHTGRAY        0XEF5B //浅灰色(PANNEL)
#define LGRAY                          0XC618 //浅灰色(PANNEL),窗体背景色

#define LGRAYBLUE        0XA651 //浅灰蓝色(中间层颜色)
#define LBBLUE           0X2B12 //浅棕蓝色(选择条目的反色)

//写寄存器函数
void LCD_WR_REG(u8 data)
{
        LCD_RS_CLR;//写地址  
        LCD_CS_CLR;
        DATAOUT(data);
        LCD_WR_CLR;
        LCD_WR_SET;
        LCD_CS_SET;   
}

//写8位数据函数
//用宏定义,提高速度.
//快速IO
void LCD_WR_DATA(data)
{
        LCD_RS_SET;
        LCD_CS_CLR;
  DATAOUT(data);
        LCD_WR_CLR;
        LCD_WR_SET;
        LCD_CS_SET;
}

//写寄存器
void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue)
{       
        LCD_WR_REG(LCD_Reg);  
        LCD_WR_DATA(LCD_RegValue);                             
}          

__inline void LCD_SetCursor(u16 Xpos, u16 Ypos)
{       
                LCD_WriteReg(0x02, Xpos>>8);//起点x高八位
                LCD_WriteReg(0x03, Xpos);        //起点x低八位
                LCD_WriteReg(0x06, Ypos>>8);//起点y高八位
                LCD_WriteReg(0x07, Ypos);          //起点y低八位                                                                                       
                LCD_WR_REG(WriteGram);                        //准备写入ram
}
void LCD_SetDomain(u16 Xpos, u16 Ypos,u16 Xend, u16 Yend)
{
                LCD_WriteReg(0x02, Xpos>>8);//起点x高八位但由于最大值为239,故高八位始终为0,可不写
                LCD_WriteReg(0x03, Xpos);        //起点x低八位
                LCD_WriteReg(0x04, Xend>>8);//终点x高八位
                LCD_WriteReg(0x05, Xend);        //终点x低八位
                LCD_WriteReg(0x06, Ypos>>8);//起点y高八位
                LCD_WriteReg(0x07, Ypos);          //起点y低八位
                LCD_WriteReg(0x08, Yend>>8);//终点y高八位
                LCD_WriteReg(0x09, Yend);        //终点y低八位                                                                                       
                LCD_WR_REG(WriteGram);                        //准备写入ram
}  

/*************************
D0~D15------PB0~PB15
CS--------------PA15
RS--------------PA12
WR--------------PA11
RD---------------PA7
RST---------------5V
BL--------------3.3V
*************************/   
void LCD_Init(void)
{        
          GPIO_InitTypeDef GPIO_InitStructure;
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA|RCC_AHBPeriph_GPIOB|RCC_AHBPeriph_GPIOC|RCC_AHBPeriph_GPIOF , ENABLE);
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_15;                                          
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;                                                                                                                                                                                                           //输出            
                GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;                                                                                                                                                                                                                //推挽输出
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
                GPIO_Init(GPIOA, &GPIO_InitStructure);                                        
                GPIO_SetBits(GPIOA,GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_15);
               
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;       
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;                                                                                                                                                                                                           //输出            
                GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;                                                                                                                                                                                                                //推挽输出
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;       
                GPIO_Init(GPIOB, &GPIO_InitStructure);                                        
                GPIO_SetBits(GPIOB,GPIO_Pin_All);
                GPIOA->BSRR =1<<6;
                delay_ms(50);                                                                                                                                            
                GPIOA->BRR  =1<<6;
                delay_ms(1);
                GPIOA->BSRR =1<<6;        
                delay_ms(50);
                LCD_WriteReg(0x00E5,0x78F0);
                LCD_WriteReg(0x0001,0x0100);
                LCD_WriteReg(0x0002,0x0700);
                LCD_WriteReg(0x0003,0x1030);
                LCD_WriteReg(0x0004,0x0000);
                LCD_WriteReg(0x0008,0x0202);  
                LCD_WriteReg(0x0009,0x0000);
                LCD_WriteReg(0x000A,0x0000);
                LCD_WriteReg(0x000C,0x0000);
                LCD_WriteReg(0x000D,0x0000);
                LCD_WriteReg(0x000F,0x0000);
                //power on sequence VGHVGL
                LCD_WriteReg(0x0010,0x0000);   
                LCD_WriteReg(0x0011,0x0007);  
                LCD_WriteReg(0x0012,0x0000);  
                LCD_WriteReg(0x0013,0x0000);
                LCD_WriteReg(0x0007,0x0000);
                //vgh
                LCD_WriteReg(0x0010,0x1690);   
                LCD_WriteReg(0x0011,0x0227);
                //delayms(100);
                //vregiout
                LCD_WriteReg(0x0012,0x009D); //0x001b
                //delayms(100);
                //vom amplitude
                LCD_WriteReg(0x0013,0x1900);
                //delayms(100);
                //vom H
                LCD_WriteReg(0x0029,0x0025);
                LCD_WriteReg(0x002B,0x000D);
                //gamma
                LCD_WriteReg(0x0030,0x0007);
                LCD_WriteReg(0x0031,0x0303);
                LCD_WriteReg(0x0032,0x0003);// 0006
                LCD_WriteReg(0x0035,0x0206);
                LCD_WriteReg(0x0036,0x0008);
                LCD_WriteReg(0x0037,0x0406);
                LCD_WriteReg(0x0038,0x0304);//0200
                LCD_WriteReg(0x0039,0x0007);
                LCD_WriteReg(0x003C,0x0602);// 0504
                LCD_WriteReg(0x003D,0x0008);
                //ram
                LCD_WriteReg(0x0050,0x0000);
                LCD_WriteReg(0x0051,0x00EF);
                LCD_WriteReg(0x0052,0x0000);
                LCD_WriteReg(0x0053,0x013F);  
                LCD_WriteReg(0x0060,0xA700);
                LCD_WriteReg(0x0061,0x0001);
                LCD_WriteReg(0x006A,0x0000);
                //
                LCD_WriteReg(0x0080,0x0000);
                LCD_WriteReg(0x0081,0x0000);
                LCD_WriteReg(0x0082,0x0000);
                LCD_WriteReg(0x0083,0x0000);
                LCD_WriteReg(0x0084,0x0000);
                LCD_WriteReg(0x0085,0x0000);
                //
                LCD_WriteReg(0x0090,0x0010);
                LCD_WriteReg(0x0092,0x0600);
               
                LCD_WriteReg(0x0007,0x0133);
                LCD_WriteReg(0x00,0x0022);

                LCD_Clear(WHITE);
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-19 19:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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