OpenEdv-开源电子网

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

ILI9341驱动,能读到芯片ID,但是不能显示

[复制链接]

11

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
146
金钱
146
注册时间
2015-7-13
在线时间
28 小时
发表于 2015-9-8 13:20:15 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true] 未用FSMC,直接驱动。屏幕只是白屏,不显示内容,无任何反应。 可以读到芯片id,划线画点之后也能读出相应点位的颜色数据。但是就是不能显示。一直是背光亮,白屏无任何反应的状态。 该如何确定是驱动的问题还是LCD模块的硬件故障呢。 下面是初始化代码。GPIO的配置在其它函数里完成的。 void LCD_Init(void) { //***************************RESET LCD Driver****************************** LCD_RESET_SET; //reset-->1 delay_ms(1); //Delay 1ms LCD_RESET_CLR; //reset-->0 delay_ms(10); //Delay 10ms LCD_RESET_SET; //reset-->1 delay_ms(120); //Delay 200ms LCD_WR_REG(0xCF); //功耗控制B LCD_WR_DATA(0x00); LCD_WR_DATA(0x81); //power控制 LCD_WR_DATA(0X30); LCD_WR_REG(0xED); //电源序列控制 LCD_WR_DATA(0x64); //软启动控制 LCD_WR_DATA(0x03); //电源序列控制 LCD_WR_DATA(0X12); //电源序列控制 LCD_WR_DATA(0X81); //DDVDH增强模式 LCD_WR_REG(0xE8); //驱动时序控制A LCD_WR_DATA(0x85); //栅极驱动器的非重叠时序控制 LCD_WR_DATA(0x00); //EQ时序控制****10 LCD_WR_DATA(0x79); //预充电时间控制****7A LCD_WR_REG(0xCB); //功耗控制A LCD_WR_DATA(0x39); LCD_WR_DATA(0x2C); LCD_WR_DATA(0x00); LCD_WR_DATA(0x34); //内核电压控制 LCD_WR_DATA(0x02); //DDVDH控制 LCD_WR_REG(0xF7); //泵比控制 LCD_WR_DATA(0x20); //比率控制 LCD_WR_REG(0xEA); //驱动时序控制B LCD_WR_DATA(0x00); //栅极驱动时序控制 LCD_WR_DATA(0x00); LCD_WR_REG(0xC0); //功耗控制1 LCD_WR_DATA(0x2E); //VRH[5:0] //设置GVDD电平 LCD_WR_REG(0xC1); //Power control //功耗控制2 LCD_WR_DATA(0x12); //SAP[2:0];BT[3:0] //设置用于升压电路的因子 LCD_WR_REG(0xC5); //VCM control //VCOM控制1 LCD_WR_DATA(0x50); //3F //设置VCOMH电压 ******30 LCD_WR_DATA(0x19); //3C //设置VCOML电压 *****30 LCD_WR_REG(0xC7); //VCM control2 //VCOM控制2 LCD_WR_DATA(0x90); //设置VCOM偏移电压*******B7 LCD_WR_REG(0x36); // Memory Access Control //存储器访问控制 LCD_WR_DATA(0xA8); //该指令定义帧存储器的读写扫描方向*********48 LCD_WR_REG(0x3A); //Pixel Format Set LCD_WR_DATA(0x55); //16bit/Pixel LCD_WR_REG(0xB1); //(正常模式/全色模式下)帧率控制 LCD_WR_DATA(0x00); //内部时钟分频设置,00时表示不分频 LCD_WR_DATA(0x14); //RNTA设置,用于设置1H(行)的时间 LCD_WR_REG(0xB6); // Display Function Control //显示功能设置 LCD_WR_DATA(0x0A); //设置显示区域扫描格式,0A表示间隔扫描 LCD_WR_DATA(0xA2); //设置源极、栅极驱动器的移动方向和扫描周期****A2 LCD_WR_REG(0xF2); // 3Gamma Function Disable //使能3G LCD_WR_DATA(0x00); //01使能,00不使能 LCD_WR_REG(0xF6); LCD_WR_DATA(0x01); LCD_WR_DATA(0x30); LCD_WR_REG(0x26); //Gamma curve selected //Gamma设置 LCD_WR_DATA(0x01); //选择Gamma1 LCD_WR_REG(0xE0); //Set Gamma //正极Gamma校准 LCD_WR_DATA(0x0F); LCD_WR_DATA(0x26); LCD_WR_DATA(0x24); LCD_WR_DATA(0x0B); LCD_WR_DATA(0x0E); LCD_WR_DATA(0x09); LCD_WR_DATA(0x54); LCD_WR_DATA(0XA8); LCD_WR_DATA(0x46); LCD_WR_DATA(0x0C); LCD_WR_DATA(0x17); LCD_WR_DATA(0x09); LCD_WR_DATA(0x0F); LCD_WR_DATA(0x07); LCD_WR_DATA(0x00); LCD_WR_REG(0XE1); //Set Gamma //负极Gamma校准 LCD_WR_DATA(0x00); LCD_WR_DATA(0x19); LCD_WR_DATA(0x1B); LCD_WR_DATA(0x04); LCD_WR_DATA(0x10); LCD_WR_DATA(0x07); LCD_WR_DATA(0x2A); LCD_WR_DATA(0x47); LCD_WR_DATA(0x39); LCD_WR_DATA(0x03); LCD_WR_DATA(0x06); LCD_WR_DATA(0x06); LCD_WR_DATA(0x30); LCD_WR_DATA(0x38); LCD_WR_DATA(0x0F); LCD_WR_REG(0x2B); //set the page address //横屏设置 LCD_WR_DATA(0x00); LCD_WR_DATA(0x00); LCD_WR_DATA(0x00); LCD_WR_DATA(0xEF); LCD_WR_REG(0x2A); //set the column address LCD_WR_DATA(0x00); LCD_WR_DATA(0x00); LCD_WR_DATA(0x01); LCD_WR_DATA(0x3F); LCD_WR_REG(0x11); //Exit Sleep//退出睡眠模式 delay_ms(200); LCD_WR_REG(0x29); //display on //开显示 delay_ms(10); }[/mw_shl_code]

最佳答案

查看完整内容[请看2#楼]

找厂家要吧。。。。 别折腾了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-9-8 13:20:16 | 显示全部楼层
找厂家要吧。。。。
别折腾了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

11

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
146
金钱
146
注册时间
2015-7-13
在线时间
28 小时
 楼主| 发表于 2015-9-8 13:20:16 | 显示全部楼层
终于搞定了,还是初始化的问题。电压啥的参数没调对。找厂家要了份初始化代码一对比就知道问题在哪了。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-9-8 22:47:14 | 显示全部楼层
这个比较奇怪,你这初始化代码,是厂家给你的么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

11

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
146
金钱
146
注册时间
2015-7-13
在线时间
28 小时
 楼主| 发表于 2015-9-9 08:37:30 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
不是,有参考你的LCD例程,也有从网上查到了,试了各种版本。都是这一种现象。
我一直在怀疑是不是屏有问题,因为这个屏只是个样品,资料不是很全。虽然之前看人演示点亮过但是我在使用的时候背光有些接触不良的感觉。
想不到该用什么方法来确定到底是屏的问题还是驱动的问题。现在手上也只有这一个样品拿不到其它的替换来试。
我想如果屏是有问题的话就算配置有问题也应该能有点乱码之类的显示吧,但是它没有任何反应让我有点无从下手的感觉。
回复

使用道具 举报

6

主题

130

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
437
金钱
437
注册时间
2013-4-9
在线时间
76 小时
发表于 2015-9-9 09:28:48 | 显示全部楼层
#define LCD_BASE    ((u32)(0x60000000 | 0x0C000000))//#define LCD_BASE        ((u32)(0x6C000000 | 0x000007FE))
#define LCD             ((LCD_TypeDef *) LCD_BASE)设置对吗
签名必须手写!
回复

使用道具 举报

6

主题

130

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
437
金钱
437
注册时间
2013-4-9
在线时间
76 小时
发表于 2015-9-9 09:43:47 | 显示全部楼层
/***************************************************************************************
2^26 =0X0400 0000 = 64MB,每个 BANK 有4*64MB = 256MB
64MB:FSMC_Bank1_NORSRAM1:0X6000 0000 ~ 0X63FF FFFF
64MB:FSMC_Bank1_NORSRAM2:0X6400 0000 ~ 0X67FF FFFF
64MB:FSMC_Bank1_NORSRAM3:0X6800 0000 ~ 0X6BFF FFFF
64MB:FSMC_Bank1_NORSRAM4:0X6C00 0000 ~ 0X6FFF FFFF

选择BANK1-BORSRAM4 连接 TFT,地址范围为0X6C00 0000 ~ 0X6FFF FFFF
FSMC_A23 接LCD的DC(寄存器/数据选择)脚
寄存器基地址 = 0X6C00 0000
RAM基地址 = 0X6D00 0000 = 0X6C00 0000+2^23*2 = 0X6C00 0000 + 0X100 0000 = 0X6D00 0000
当选择不同的地址线时,地址要重新计算  
****************************************************************************************/
签名必须手写!
回复

使用道具 举报

11

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
146
金钱
146
注册时间
2015-7-13
在线时间
28 小时
 楼主| 发表于 2015-9-9 10:26:18 | 显示全部楼层
回复【5楼】sf116:
---------------------------------
我没用FSMC,直接操作IO模拟80总线时序来操作的。
之前画板没考虑好,没连接到FSMC对应的IO。
回复

使用道具 举报

20

主题

143

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2015-8-28
在线时间
108 小时
发表于 2016-6-21 09:54:30 | 显示全部楼层
Demprace 发表于 2015-9-9 10:26
回复【5楼】sf116:
---------------------------------
我没用FSMC,直接操作IO模拟80总线时序来操作的。
...

现在使用ili9341,ID读不出来,刷屏函数全是白屏
示波器看写时序也是对的
初始化函数厂家给的代码
还有什么原因能导致液晶屏啥也不显示呢?
这种就算初始化配置有问题,是不是也应该出现花屏之类的显示吧?
没显示确定不了问题原因啊
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2016-7-5
在线时间
0 小时
发表于 2016-7-5 15:46:39 | 显示全部楼层
无帝老三 发表于 2016-6-21 09:54
现在使用ili9341,ID读不出来,刷屏函数全是白屏
示波器看写时序也是对的
初始化函数厂家给的代码

您好  您的问题解决了吗,我也遇到同样的问题,初始化代码也是厂家给的,就是显示不了
回复

使用道具 举报

20

主题

143

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2015-8-28
在线时间
108 小时
发表于 2016-7-5 17:22:22 | 显示全部楼层
zxy408120629 发表于 2016-7-5 15:46
您好  您的问题解决了吗,我也遇到同样的问题,初始化代码也是厂家给的,就是显示不了

我的是硬件问题,可能焊接时把排线整断了,换个屏是好的,
如果测试时序都是正确的,考虑下硬件问题
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2016-7-5
在线时间
0 小时
发表于 2016-7-6 11:18:07 | 显示全部楼层
本帖最后由 zxy408120629 于 2016-7-6 11:38 编辑
无帝老三 发表于 2016-7-5 17:22
我的是硬件问题,可能焊接时把排线整断了,换个屏是好的,
如果测试时序都是正确的,考虑下硬件问题

您好,可不可以给个参考的代码,zxy408120629@163.com     只要写命令和数据时序那部分,还有初始化那部分的,在线等,万分感谢
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2016-7-5
在线时间
0 小时
发表于 2016-7-6 15:19:36 | 显示全部楼层
无帝老三 发表于 2016-7-5 17:22
我的是硬件问题,可能焊接时把排线整断了,换个屏是好的,
如果测试时序都是正确的,考虑下硬件问题

不用发了,解决了,是屏的问题,还是谢谢你
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-11 08:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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