OpenEdv-开源电子网

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

STM32驱动LCD白屏的问题

[复制链接]

33

主题

209

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2014-1-20
在线时间
0 小时
发表于 2014-1-20 14:46:06 | 显示全部楼层 |阅读模式
本人是小菜鸟一只啊!机器跑着跑着,LCD经常无规律地出现白屏,然后重启之后又好了!开始以为是驱动的问题,不过始终觉得驱动没有问题
void LCD_Initial(void)
{
uchar i,j;
LCD_SetCmdDat(WLCR,0x08); //图形方式
LCD_SetCmdDat(MISC,0x80); //com 0-239 seg0-319
LCD_SetCmdDat(ADSR,0x00); // 关卷动
LCD_SetCmdDat(INTR,0x00); // 关中断
LCD_SetCmdDat(WCCR,0x00); // 数据显示效果设置
LCD_SetCmdDat(CHWI,0x00); // 游标高度为1 pixel。 间距为 1 pixel。
/**显示域设定**/
LCD_SetCmdDat(AWRR,0x27);
LCD_SetCmdDat(DWWR,0x27);
LCD_SetCmdDat(AWBR,0xef);
LCD_SetCmdDat(DWHR,0xef);
LCD_SetCmdDat(AWLR,0x00);
LCD_SetCmdDat(AWTR,0x00);
/**参数设定**/
  LCD_XY(0,0); //设定坐标
LCD_SetCmdDat(BTMR,0x20); //设定光标闪烁和卷动时间周期
LCD_SetCmdDat(ITCR,0x20); //空闲时间(idle time)设定
LCD_SetCmdDat(PCR, 0x81); //脉波宽度调变(PWM)开启或关闭
LCD_SetCmdDat(PDCR,0x80); //PWM 责任周期(Cycle Duty)选择
Lcd_Zoom(0,0); //字体大小控制

LCD_SetCmdDat(PNTR,0x00);  //EOH设定写入到DDRAM的数据  
//    LCD_SetCmdDat(FNCR,0x9a);  //F0H设定bit3=1,自动读取PNTR数据,并写入DDRAM
// Lcd_delay3us(100);  

    LCD_SetCmdDat(FNCR,0x08); //字体类型控制
LCD_SetCmdDat(FVHT,0x00); //F1H字形水平大小一倍、垂直大小一倍  
LCD_SetCmdDat(MAMR,0x33);//双图层显示模式 同时存取DDRAM1和 DDRAM2。
LCD_XY(0,0); //X Y 地址

Lcd_delay3us(500);
LCD_SetCmdDat(WLCR,0x0C); //电源正常、文本方式、显示开、不闪烁、不反白
LCD_CmdWrite(0xb0); //写入
for( i = 0; i < 240;i++)
{
for( j = 0; j < 40; j++)
{
LCD_DataWrite(0x00);
}
}
}
然后该延时的地方也有延时。
问题找了三五天后,无奈只能找硬件问题了。白屏过程,用万能表去测驱动电路的电压时,只要将表笔一接上接地的脚,LCD又正常了!这是不是电压不稳定造成的?



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

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-1-20 14:49:44 | 显示全部楼层
这。。。还真没遇到过
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

33

主题

209

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2014-1-20
在线时间
0 小时
 楼主| 发表于 2014-1-20 14:49:53 | 显示全部楼层
LCD的驱动电路的信号是从主板上通过排线接过来的,有时候将排线拔下重新找准位置插好,白屏也会消失
回复 支持 反对

使用道具 举报

33

主题

209

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2014-1-20
在线时间
0 小时
 楼主| 发表于 2014-1-20 14:51:31 | 显示全部楼层
回复【2楼】Badu_Space:
---------------------------------
这个问题困扰小弟有半个月了啊,开始从软件问题上找,再从硬件问题上找。现在看来只有是硬件的问题了。
回复 支持 反对

使用道具 举报

33

主题

209

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2014-1-20
在线时间
0 小时
 楼主| 发表于 2014-1-20 14:53:17 | 显示全部楼层
有哪位大侠可以指点指点啊,硬件自己不太懂啊!
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-1-20 14:56:19 | 显示全部楼层
回复【5楼】Chaplin:
---------------------------------
是不是排线太长了呀
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

33

主题

209

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2014-1-20
在线时间
0 小时
 楼主| 发表于 2014-1-20 14:56:49 | 显示全部楼层
呼叫原子哥。。。。。。
回复 支持 反对

使用道具 举报

33

主题

209

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2014-1-20
在线时间
0 小时
 楼主| 发表于 2014-1-20 14:58:43 | 显示全部楼层
回复【6楼】Badu_Space:
---------------------------------
这个问题我还真没想过。估计了一下有40cm的样子!是不是太长了?
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-1-20 15:04:06 | 显示全部楼层
回复【8楼】Chaplin:
---------------------------------
你接短点看下还会不会出现这个问题
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

33

主题

209

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2014-1-20
在线时间
0 小时
 楼主| 发表于 2014-1-20 15:08:51 | 显示全部楼层
正常.jpg
回复 支持 反对

使用道具 举报

33

主题

209

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2014-1-20
在线时间
0 小时
 楼主| 发表于 2014-1-20 15:10:35 | 显示全部楼层
在白屏时候,我用表笔触一个接地引脚,然后LCD又正常显示了!这真是太神奇了!哎。。。。。。。。。。
BAIPING.jpg
回复 支持 反对

使用道具 举报

33

主题

209

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2014-1-20
在线时间
0 小时
 楼主| 发表于 2014-1-20 15:11:05 | 显示全部楼层
回复【9楼】Badu_Space:
---------------------------------
好吧,换换排线。
回复 支持 反对

使用道具 举报

33

主题

209

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2014-1-20
在线时间
0 小时
 楼主| 发表于 2014-1-20 15:24:15 | 显示全部楼层
很郁闷,换了还是会白屏!为什么只要我将表笔接上接地的引脚LCD又正常了?
回复 支持 反对

使用道具 举报

2

主题

27

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
371
金钱
371
注册时间
2013-11-19
在线时间
2 小时
发表于 2014-1-20 21:22:52 | 显示全部楼层
LCD不外乎几件事,
1.驱动电压
2.初始化时序延时
3.读写时时序
4.读写时判忙后再写
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-1-20 22:11:57 | 显示全部楼层
估计就是排线太长了,40cm没有串电阻的话,振铃现象干扰很大....
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

33

主题

209

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2014-1-20
在线时间
0 小时
 楼主| 发表于 2014-1-21 09:18:41 | 显示全部楼层
回复【14楼】tony_sgt:
---------------------------------
好的,重新整理一下!再检查一遍
回复 支持 反对

使用道具 举报

33

主题

209

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2014-1-20
在线时间
0 小时
 楼主| 发表于 2014-1-21 09:24:28 | 显示全部楼层
回复【15楼】正点原子:
---------------------------------
本身主机就有主备点,主备电转换上不稳定。没有碰到过振铃现象,本来自己硬件不太懂啊!重新整理一下问题,从各种可能下手吧
回复 支持 反对

使用道具 举报

33

主题

209

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2014-1-20
在线时间
0 小时
 楼主| 发表于 2014-1-21 10:47:28 | 显示全部楼层
回复【14楼】tony_sgt:
---------------------------------
Tony大哥,读写里面有了忙等待的话,再加上延时合适吗?
回复 支持 反对

使用道具 举报

33

主题

209

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2014-1-20
在线时间
0 小时
 楼主| 发表于 2014-1-21 10:48:42 | 显示全部楼层
回复【18楼】Chaplin:
---------------------------------
像这样:
     Busy();         //忙等待
_RD_ON();
_CS_OFF();
_A0_OFF();
_WR_OFF();
Lcd_delay3us(5);
Lcd_Write_Data(b);
Lcd_delay3us(10);
_WR_ON();
_CS_ON();
回复 支持 反对

使用道具 举报

2

主题

27

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
371
金钱
371
注册时间
2013-11-19
在线时间
2 小时
发表于 2014-1-23 10:04:19 | 显示全部楼层
回复【19楼】Chaplin:
---------------------------------
判忙类似这样
void read_busy()
{
RS=0;
RW=1;
EN=1;
while(LCD_Data&0x80);
EN=0;
}
回复 支持 反对

使用道具 举报

33

主题

209

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2014-1-20
在线时间
0 小时
 楼主| 发表于 2014-2-8 10:16:33 | 显示全部楼层
回复【20楼】tony_sgt:

回复【19楼】Chaplin:
---------------------------------
判忙类似这样
void read_busy()
{
RS=0;
RW=1;
EN=1;
while(LCD_Data&0x80);
EN=0;
}

---------------------------------
tony大哥,我那LCD是5V供电的(电压时通过3.3V转过来的),但是用笔去测的时候,会突然跳变到6V多,马上又跳下来的情况!你说这情况允许不?
回复 支持 反对

使用道具 举报

11

主题

68

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
322
金钱
322
注册时间
2015-4-5
在线时间
35 小时
发表于 2016-11-23 21:49:11 来自手机 | 显示全部楼层
请问楼主怎么解决的
回复 支持 反对

使用道具 举报

5

主题

69

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
307
金钱
307
注册时间
2016-10-20
在线时间
64 小时
发表于 2016-11-24 08:33:55 | 显示全部楼层
你把端口初始化程序贴出来瞧瞧呗
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-25 10:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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