搜索
bottom↓
回复: 19

能否用SPI接口而不用RGB接口驱动ILI9341实现显示功能?

[复制链接]

出0入0汤圆

发表于 2013-5-16 16:19:55 | 显示全部楼层 |阅读模式
大家好,我想用MSP430控制ILI9341驱动液晶显示。ILI9341有RGB接口,用于接收要显示的数据。另外,SPI接口实现初始化的功能。现在想在SPI初始完后,直接用SPI传送数据显示一幅画面。看芯片手册,感觉应该可以实现。但总是不成功。请教大家,ILI9341只能用RGB接口传输要显示的数据吗?

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2013-5-18 08:17:36 | 显示全部楼层


那个要 做液晶的厂家把 引脚绑定出来了  你才能用吧,  一般淘宝上的好像没把SPI绑定出来的.

出0入0汤圆

发表于 2013-5-18 09:45:25 来自手机 | 显示全部楼层
可以了,没问题

出0入0汤圆

 楼主| 发表于 2013-5-20 09:51:45 | 显示全部楼层
现在我这里的液晶模块RGB接口和SPI接口都是引出来的。用SPI初始化完成后,并且打开了显示功能(命令字0x29),然后执行“Memory Write”指令(命令字0x2C),后面加要显示的数据。但是LCD上没有任何显示,不清楚是哪里设置不对了,还是ILI9341只能通过RGB接口实现显示功能?

出0入0汤圆

发表于 2013-6-24 15:13:43 | 显示全部楼层
有没有并口8位数据总线的驱动啊?

出0入0汤圆

发表于 2013-6-24 17:00:42 | 显示全部楼层
一般2种接口都支持的!SPI ,RGB 接口都可以。
可以参考一下这里: http://item.taobao.com/item.htm? ... &id=22600824968

出0入0汤圆

 楼主| 发表于 2013-6-26 14:16:49 | 显示全部楼层
ANHOME 发表于 2013-6-24 17:00
一般2种接口都支持的!SPI ,RGB 接口都可以。
可以参考一下这里: http://item.taobao.com/item.htm?spm=a1 ...

谢谢,最后确定是自己程序的问题,用SPI初始化的时候设置错了。用SPI、RGB、MCU接口都是可以的。

出0入0汤圆

发表于 2013-7-8 21:53:16 | 显示全部楼层
richu 发表于 2013-6-26 14:16
谢谢,最后确定是自己程序的问题,用SPI初始化的时候设置错了。用SPI、RGB、MCU接口都是可以的。 ...

最近用到这个接口驱动ILI9341,SPI接口。能否共享一下呀。

出0入0汤圆

 楼主| 发表于 2013-7-9 10:11:10 | 显示全部楼层
win100 发表于 2013-7-8 21:53
最近用到这个接口驱动ILI9341,SPI接口。能否共享一下呀。

初始化的代码部分如下,可以参考:
/***************
ILI9341 Initial
SPI接口
未用RGB接口
***************/

RESET_LCD = 1; // 拉高LCD复位引脚
_delay_ms(1);
RESET_LCD = 0; // 拉低LCD复位引脚
_delay_ms(10);
RESET_LCD = 1; // 拉高LCD复位引脚
_delay_ms(120);

Write_Command(0x11);
_delay_ms(60);
Write_Command(0xC0);
Write_Parameter (0x08);
Write_Command(0xC1);
Write_Parameter (0x10);
Write_Command(0x35);
Write_Parameter (0x00);
Write_Command(0xC5);
Write_Parameter (0x29);
Write_Parameter (0x2D);
Write_Command(0x36);
Write_Parameter (0x04);
Write_Command(0xB1);
Write_Parameter (0x00);
Write_Parameter (0x1B);
Write_Command(0xB6);
Write_Parameter (0x0A);
Write_Parameter (0xA2);
Write_Command(0xC7);
Write_Parameter (0XAB);
Write_Command (0xB5);
Write_Parameter (0x03);
Write_Parameter (0x04);
Write_Parameter (0x0D);
Write_Parameter (0x0A);
Write_Command(0xE0);
Write_Parameter (0x0F);
Write_Parameter (0x2D);
Write_Parameter (0x26);
Write_Parameter (0x0D);
Write_Parameter (0x11);
Write_Parameter (0x08);
Write_Parameter (0x46);
Write_Parameter (0x97);
Write_Parameter (0x2B);
Write_Parameter (0x01);
Write_Parameter (0x08);
Write_Parameter (0x00);
Write_Parameter (0x01);
Write_Parameter (0x01);
Write_Parameter (0x00);
Write_Command(0xE1);
Write_Parameter (0x01);
Write_Parameter (0x08);
Write_Parameter (0x0F);
Write_Parameter (0x06);
Write_Parameter (0x12);
Write_Parameter (0x06);
Write_Parameter (0x3A);
Write_Parameter (0x56);
Write_Parameter (0x5E);
Write_Parameter (0x0C);
Write_Parameter (0x18);
Write_Parameter (0x0F);
Write_Parameter (0x3A);
Write_Parameter (0x3A);
Write_Parameter (0x0F);
Write_Command(0xF6);
Write_Parameter (0x01);
Write_Parameter (0x00);
Write_Parameter (0x00);
Write_Command(0xED);
Write_Parameter (0x64);
Write_Parameter (0x03);
Write_Parameter (0x12);
Write_Parameter (0x81);
Write_Command(0x3A);
Write_Parameter (0x66);
Write_Command(0xB4);
Write_Parameter (0x00);
Write_Command(0xEA);
Write_Parameter (0x00);
Write_Parameter (0x00);
Write_Command(0xCB);
Write_Parameter (0x39);
Write_Parameter (0x2C);
Write_Parameter (0x00);
Write_Parameter (0x34);
Write_Parameter (0x02);
Write_Command(0xCF);
Write_Parameter (0x00);
Write_Parameter (0xF9);
Write_Parameter (0x30);
Write_Command(0xF7);
Write_Parameter (0x20);
Write_Command(0xE8);
Write_Parameter (0x85);
Write_Parameter (0x00);
Write_Parameter (0x78);
Write_Command(0x29);
}

出0入0汤圆

发表于 2013-8-12 20:39:00 | 显示全部楼层
感谢分享!

出0入0汤圆

发表于 2013-8-24 11:45:34 | 显示全部楼层
LZ请问你还用的控制器的SPI还是模拟的SPI,怎么去区分命令和数据的,我弄了好久,现在也没弄好!

出0入0汤圆

 楼主| 发表于 2013-8-26 16:37:20 | 显示全部楼层
keinYe 发表于 2013-8-24 11:45
LZ请问你还用的控制器的SPI还是模拟的SPI,怎么去区分命令和数据的,我弄了好久,现在也没弄好! ...

可以参考ili9341的Datasheet,在控制器与ili9341进行SPI通讯时,首先通过ili9341的硬件引脚配置IM[3..0],来选择SPI通讯为3线9位接口模式还是4线8位接口模式。
1、当选择3线9位接口模式时,传输的9位数据中,第一位就是命令/数据的标志位。
2、当选择4线8位接口模式时,则有专门的D/CX引脚来指明传输的是命令还是数据。

具体是选用控制器自带的SPI接口还是模拟SPI控制方式倒不重要,二者都可以实现,我用的是模拟SPI方式。

出0入0汤圆

发表于 2013-10-15 11:50:59 | 显示全部楼层
richu 发表于 2013-8-26 16:37
可以参考ili9341的Datasheet,在控制器与ili9341进行SPI通讯时,首先通过ili9341的硬件引脚配置IM[3..0] ...

LZ你好,现在我也碰到这个问题,写命令,数据都没有问题,能显示,但是读老是读不对,比如读驱动ID,老是读不对

出0入0汤圆

发表于 2013-10-15 12:15:07 | 显示全部楼层
用smt32模拟spi,怎么模拟??

出0入0汤圆

 楼主| 发表于 2013-10-16 09:03:56 | 显示全部楼层
jesen_2010 发表于 2013-10-15 11:50
LZ你好,现在我也碰到这个问题,写命令,数据都没有问题,能显示,但是读老是读不对,比如读驱动ID,老是 ...

写操作能完成, 说明没有大问题。还有,在读操作时,发送完读命令字后,将SDA配置为输入。

出0入0汤圆

 楼主| 发表于 2013-10-16 09:05:41 | 显示全部楼层
wsgj0 发表于 2013-10-15 12:15
用smt32模拟spi,怎么模拟??

用STM32模拟SPI时,将SPI相关的IO配置为GPIO,然后根据datasheet上的时序图控制GPIO就行。

出0入0汤圆

发表于 2013-10-16 09:44:41 | 显示全部楼层
但个人感觉,用SPI接口  在速度上肯定是没有IORGB快的  

出0入0汤圆

发表于 2013-10-16 17:06:45 | 显示全部楼层
richu 发表于 2013-10-16 09:03
写操作能完成, 说明没有大问题。还有,在读操作时,发送完读命令字后,将SDA配置为输入。 ...

我的屏是4线SPI,没有SDA,有SDI和SDO,SDO mcu配置成复用推挽输出

出0入0汤圆

 楼主| 发表于 2013-10-17 10:18:26 | 显示全部楼层
jesen_2010 发表于 2013-10-16 17:06
我的屏是4线SPI,没有SDA,有SDI和SDO,SDO mcu配置成复用推挽输出

我是用模拟spi实现的。如果你用stm32的spi进行通信,读数据不正确是不是出现了溢出,由于spi进行写操作的同时也在接收,所以第一次读操作前要先读一次数据寄存器,以保证数据寄存器空,能正常接收数据。

出0入0汤圆

发表于 2015-5-14 23:01:52 | 显示全部楼层
可以分享一下SPI读取的程序吗,现在卡到这一块了,不知道该怎么弄,先谢谢了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 07:55

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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