OpenEdv-开源电子网

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

为什么显示屏就是不亮啊

[复制链接]

3

主题

13

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2018-3-28
在线时间
17 小时
发表于 2018-4-2 13:30:52 | 显示全部楼层 |阅读模式
16金钱
#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劲爆上市
回复

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3772
金钱
3772
注册时间
2015-4-26
在线时间
765 小时
发表于 2018-4-2 13:51:58 | 显示全部楼层
显示屏亮不亮和你发的这些没关系,你看原理图,显示屏背光灯接到哪个引脚上了,用那个引脚控制背光亮灭。你发的这些是液晶驱动芯片的控制代码
我有故事,你有酒吗
回复

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2018-3-28
在线时间
17 小时
 楼主| 发表于 2018-4-2 14:43:47 | 显示全部楼层
来俩不甜的 发表于 2018-4-2 13:51
显示屏亮不亮和你发的这些没关系,你看原理图,显示屏背光灯接到哪个引脚上了,用那个引脚控制背光亮灭。你 ...

只有两块芯片单独的原理图,连线都要自己选择连哪个引脚,不是有些地方说只要将BL引脚接到高电平就可以吗,
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-4-3 01:31:00 | 显示全部楼层
xiaoshagua 发表于 2018-4-2 14:43
只有两块芯片单独的原理图,连线都要自己选择连哪个引脚,不是有些地方说只要将BL引脚接到高电平就可以吗 ...

看模块,看原理图。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2018-3-28
在线时间
17 小时
 楼主| 发表于 2018-4-3 10:54:30 | 显示全部楼层
正点原子 发表于 2018-4-3 01:31
看模块,看原理图。

6.png 5.png 1.png
回复

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2018-3-28
在线时间
17 小时
 楼主| 发表于 2018-4-3 11:11:05 | 显示全部楼层

因为这款显示屏开始是连在f103上一起的,之前的电路图上有说明,换了M0之后只能根据引脚来连,
回复

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2018-3-28
在线时间
17 小时
 楼主| 发表于 2018-4-4 10:12:08 | 显示全部楼层
来俩不甜的 发表于 2018-4-2 13:51
显示屏亮不亮和你发的这些没关系,你看原理图,显示屏背光灯接到哪个引脚上了,用那个引脚控制背光亮灭。你 ...

背光有亮啊,就是屏幕没有亮
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-4-5 01:51:15 | 显示全部楼层
xiaoshagua 发表于 2018-4-4 10:12
背光有亮啊,就是屏幕没有亮

说明驱动存在问题。
先读ID,看看正常不吧
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2018-3-28
在线时间
17 小时
 楼主| 发表于 2018-4-8 15:12:58 | 显示全部楼层
正点原子 发表于 2018-4-5 01:51
说明驱动存在问题。
先读ID,看看正常不吧

原子哥,我读到的ID怎么会是8000啊,16进制的
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-4-9 02:08:50 | 显示全部楼层
xiaoshagua 发表于 2018-4-8 15:12
原子哥,我读到的ID怎么会是8000啊,16进制的

说明代码有问题啊,慢慢调试啊。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2018-3-28
在线时间
17 小时
 楼主| 发表于 2018-4-9 16:01:01 | 显示全部楼层
正点原子 发表于 2018-4-9 02:08
说明代码有问题啊,慢慢调试啊。

原子哥,现在显示屏亮了,可是一直都是花屏的
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-4-11 01:43:07 | 显示全部楼层
xiaoshagua 发表于 2018-4-9 16:01
原子哥,现在显示屏亮了,可是一直都是花屏的

继续努力
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2018-3-28
在线时间
17 小时
 楼主| 发表于 2018-4-11 14:48:21 | 显示全部楼层

原子哥,还是没找到原因啊,一直都是花屏,这IO口配置应该没有问题吧,
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA|RCC_AHBPeriph_GPIOB|RCC_AHBPeriph_GPIOC|RCC_AHBPeriph_GPIOF, ENABLE);
//PA5--BL
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_SetBits(GPIOA,GPIO_Pin_5);
       
        //PA6-RES,PA7-RD,PA11-WR,PA12-RS,PA15-CS
        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);
回复

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2018-3-28
在线时间
17 小时
 楼主| 发表于 2018-4-11 14:54:53 | 显示全部楼层

C:\Users\wh\Desktop
IMG_20180409_115349.jpg
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-4-12 00:20:48 | 显示全部楼层
xiaoshagua 发表于 2018-4-11 14:48
原子哥,还是没找到原因啊,一直都是花屏,这IO口配置应该没有问题吧,
RCC_AHBPeriphClockCmd(RCC_AHBP ...

推挽输出,没毛病
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 11:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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