OpenEdv-开源电子网

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

该如何将原子tft lcd实验代码修改要成8bit屏可显示

[复制链接]

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
发表于 2014-12-22 15:52:15 | 显示全部楼层 |阅读模式
5金钱
该如何将原子tft lcd实验代码修改要成8bit屏可显示

最佳答案

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

楼主,有网友发了8位驱动,你参考下吧:http://www.openedv.com/posts/list/44453.htm?fromAll=0
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-22 15:52:16 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-22 19:32:40 | 显示全部楼层
不可以改。固定死了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-12-22 20:10:39 | 显示全部楼层
回复【2楼】正点原子:
--------------------------------
原子哥如果我修改这代码
FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_8b;
让fsmc变成8位传输市否就可以直接套用你的程序来显示tft lcd?
如果套用还是没办法显示只是因为固定死了以外还有哪里设定错了吗
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-22 23:17:57 | 显示全部楼层
回复【3楼】hack906447:
---------------------------------
我们的液晶不支持8位模式,你改为8位,肯定无法用。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-12-23 08:14:31 | 显示全部楼层
回复【3楼】hack906447:
---------------------------------
楼主要找一个支持8位数据总线的屏幕才行
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-12-23 09:14:00 | 显示全部楼层
回复【5楼】八度空间:
---------------------------------
我已经有8位的屏那接下来该怎么改
回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-12-23 09:59:32 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
原子哥方便告知固定死了的地方在那吗?是不是传输时设置16位
回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-12-23 17:05:43 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
如果硬件用8位的屏那该改那里呢
回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-12-23 17:06:37 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
是不是只要改fsmc的设置就好
回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-12-23 21:30:05 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
原子哥你好抱歉这各问题一直纠缠着你
因为开发硬件上的建制所以只好在8位上的屏钻
现在使用你的开发板跟8位屏来实验与套用你的tft实验程序
想确认几各问题
(1)8位传输屏是对应fsmc的d0-d7还是d8-d15呢?

(2)fsmc的设置只需修改
FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_8b;就可以了吗

(3)片选部分我使用NE1是不是修改
FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;
FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);
io对应脚位PD7对吗?

(4)lcd上的rs对应地址线我设置A16(PD11)还需要修改什么吗?

(5)传输到8位的屏有需要另外分两次传送数据吗?

麻烦原子哥帮忙看看
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-23 22:53:44 | 显示全部楼层
1,d0~7
2,是的。
3,是的。IO要看原理图,FSMC_NE1就是了。
4,修改LCD_BASE的地址。
5,是的,所以很慢。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-12-24 07:00:31 | 显示全部楼层
回复【11楼】正点原子:
---------------------------------
谢谢原子哥
在请教一下更改写读及命令的函数指令是在哪各文档里
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-24 19:27:38 | 显示全部楼层
回复【12楼】hack906447:
---------------------------------
看源码
我的代码都有注释。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-12-24 19:51:10 | 显示全部楼层
回复【13楼】正点原子:
---------------------------------
原子哥请教一下~看了代码如果要将你的代码改成8位传输是不是只要更改ili9325中的驱动参数就可以了?函數部分是不是不用變更
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-24 21:43:49 | 显示全部楼层
回复【14楼】hack906447:
---------------------------------
函数部分不改也可以。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-12-24 22:02:20 | 显示全部楼层
回复【15楼】正点原子:
---------------------------------
非常谢谢原子哥帮忙回答
所以我再次确认一下我将fsmc设置好了之后
以下的动作完成后
1,d0~7
2,是的。
3,是的。IO要看原理图,FSMC_NE1就是了。
4,修改LCD_BASE的地址。
5,是的,所以很慢。

如果原子哥你的lcd.c内的函数都不改那是不是16位改8位的动作要由ili9325的驱动寄存器里面更改呢?

今天尝试更改了ili9325驱动参数
LCD_WriteReg(0x0003,0x1030);改成LCD_WriteReg(0x0003,0xD030);
LCD_WriteReg(0x000C,0x0000); 改成LCD_WriteReg(0x000C,0x0003);
都是将数据宽度改成8bit但都失败一样没显示难道我都改错了吗?
回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-12-25 21:51:08 | 显示全部楼层
回复【15楼】正点原子:
---------------------------------
不知道原子哥有看到我的ili9325驱动问题吗
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-25 22:28:07 | 显示全部楼层
回复【17楼】hack906447:
---------------------------------
没。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-12-26 06:25:50 | 显示全部楼层
回复【18楼】正点原子:
---------------------------------

今天尝试更改了ili9325驱动参数
LCD_WriteReg(0x0003,0x1030);改成LCD_WriteReg(0x0003,0xD030);
LCD_WriteReg(0x000C,0x0000); 改成LCD_WriteReg(0x000C,0x0003); 
但是还是不显示是否修改错误


回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-12-26 20:03:33 | 显示全部楼层
回复【18楼】正点原子:
---------------------------------
原子哥以下是你的代码中9325驱动的部分 可否麻烦你指出哪些是需要修改的寄存器拜托了~
红色是我修改的部分但还是白屏

if(lcddev.id==0x9325)//9325
{
LCD_WriteReg(0x00E5,0x78F0); 
LCD_WriteReg(0x0001,0x0100);//驱动器输出控制 ss=1 输出方向是s720-s1
LCD_WriteReg(0x0002,0x0700);//驱动波形控制 EOR=1 B/C=1 设置行反转 
LCD_WriteReg(0x0003,0x1030);//←改成LCD_WriteReg(0x0003,0xD030);
//进入模式 BGR=1 写入GRAM时转换RGB到BGR I/D1,I/D0=1 更新显示数据时由左至右


LCD_WriteReg(0x0004,0x0000);//控制寄存器大小 
LCD_WriteReg(0x0008,0x0202);//显示控制2 FP1=2 BP1=2 5 LINES 
LCD_WriteReg(0x0009,0x0000);//显示控制3 
LCD_WriteReg(0x000A,0x0000);//显示控制4
LCD_WriteReg(0x000C,0x0000);//←改成LCD_WriteReg(0x000C,0x0003);
//RGB显示接口控制1

LCD_WriteReg(0x000D,0x0000);//桢标记位置
LCD_WriteReg(0x000F,0x0000);//RGB显示接口控制2
//power on sequence VGHVGL
LCD_WriteReg(0x0010,0x0000);//功率控制1   
LCD_WriteReg(0x0011,0x0007);//功率控制2 VC0=1 VC1=1 VC2=1 1.0*VIC  
LCD_WriteReg(0x0012,0x0000);//功率控制3  
LCD_WriteReg(0x0013,0x0000);//功率控制4 
LCD_WriteReg(0x0007,0x0000);//显示控制1 
//vgh                       
LCD_WriteReg(0x0010,0x1690);//功率控制1 SAP=1 启动电源电路BT1=1 BT2=1 3H6 选择升压因素
//AP0=1 APE=1 运算放大电路与升压电路1:0-1:0同等 
LCD_WriteReg(0x0011,0x0227);//功率控制2 DC11=1 FOSC/16 DC01=1 FOSC/4 VC0=1 VC1=1 VC2=1 1.0*VIC 
//delayms(100);
//vregiout 
LCD_WriteReg(0x0012,0x009D);//0x001b//功率控制3 VCIRE=1 ON=1
//delayms(100); 
//vom amplitude
LCD_WriteReg(0x0013,0x1900);//功率控制4 VDV4=1 VDV3=1 VDV0=1 VREG1OUT*1.12
//delayms(100); 
//vom H
LCD_WriteReg(0x0029,0x0025);//电力控制7 VCM5=1 VCM3=1 VCM0=1 VREG1OUT*0.890 
LCD_WriteReg(0x002B,0x000D);//桢速度和色彩控制 FRS3=1 FRS2=1 FRS0=1 FRAME RATE 128 
//gamma
LCD_WriteReg(0x0030,0x0007);//咖玛控制 KP02=1 KP01=1 KP00=1
LCD_WriteReg(0x0031,0x0303);//咖玛控制 KP31=1 KP30=1 KP21=1 KP20=1
LCD_WriteReg(0x0032,0x0003);//0006//咖玛控制 KP41=1 KP40=1
LCD_WriteReg(0x0035,0x0206);//咖玛控制 RP11=1 RP02=1 RP01=1
LCD_WriteReg(0x0036,0x0008);//咖玛控制 VRP03=1 
LCD_WriteReg(0x0037,0x0406);//咖玛控制 KN12=1 KN02=1 KN00=1
LCD_WriteReg(0x0038,0x0304);//0200//咖玛控制 KN31=1 KN30=1 KN22=1
LCD_WriteReg(0x0039,0x0007);//咖玛控制 KN42=1 KN41=1 KN40=1
LCD_WriteReg(0x003C,0x0602);//0504//咖玛控制 RN12=1 RN10=1 RN01=1
LCD_WriteReg(0x003D,0x0008);//咖玛控制 VRN03=1
//KP=Y正级微调 RP=Y正级斜度微调 VRP=Y正级波幅微调 KN=Y负级微调 RN=Y负级斜度微调 VRN=Y负级波幅微调
//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);//
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-26 21:50:31 | 显示全部楼层
回复【20楼】hack906447:
---------------------------------
搞了半天,你驱动原理都不知道。。。
既然是8位模式了,凡是发送的数据,超过0XFF的,都得分两次发送。
不过这还不是关键,关键是8位模式下,你的初始化代码未必和16位模式一样。

所以,既然你打算用8位,那么你屏的初始化代码,肯定是供应商提供,直接问供应商要!!!如果供应商不提供,我建议你就换厂家吧。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-12-27 06:14:11 | 显示全部楼层
回复【21楼】 正点原子 :
---------------------------------
非常谢谢原子哥~
其实之前有提过是否用要发两次传输(在楼上)
但搞不清楚是函数要改还是连驱动也要改
所以原子哥的意思是函数不需要改ili9325的驱动只要跟厂商要就可以套用上去来显示了吗?
回复

使用道具 举报

9

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
165
金钱
165
注册时间
2013-2-5
在线时间
18 小时
发表于 2014-12-27 12:55:32 | 显示全部楼层
9325寄存器是16位的,如果用8bit数据位宽,我想你需要修改下写寄存器的方法,地址要发两次,数据要发两次, 感觉层主没还是没太明白
话说我有严重的拖延症,怎样才能不做事不拖拖拉拉的呢...
回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-12-27 13:33:38 | 显示全部楼层
回复【23楼】tinylaker:
---------------------------------
確實不夠明白
可幫忙具體指出寄存器號嗎?
函數部份應該是可以延用
回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-12-28 09:07:30 | 显示全部楼层
回复【25楼】正点原子:
---------------------------------
原子哥真给力阿~
这是及时雨阿感谢
回复

使用道具 举报

10

主题

75

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2015-5-22
在线时间
0 小时
发表于 2015-6-2 20:14:06 | 显示全部楼层
回复【19楼】hack906447:
---------------------------------
else//其他驱动IC   
{
dirreg=0X03;
regval|=1<<12;  
}
LCD_WriteReg(dirreg,regval);
原子哥,这是lcd.c中void LCD_Scan_Dir(u8 dir)函数的两句,请问为什么要将BGR位设置成1啊,原则为0,即使用之前的RGB值不行吗
我建了一个战舰stm32交流群:320350722 新手请教老手,老手大显身手! stm32交流群:320350722 stm32交流群:320350722
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-21 18:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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