richu 发表于 2013-5-16 16:19:55

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

大家好,我想用MSP430控制ILI9341驱动液晶显示。ILI9341有RGB接口,用于接收要显示的数据。另外,SPI接口实现初始化的功能。现在想在SPI初始完后,直接用SPI传送数据显示一幅画面。看芯片手册,感觉应该可以实现。但总是不成功。请教大家,ILI9341只能用RGB接口传输要显示的数据吗?

jcrorxp 发表于 2013-5-18 08:17:36

{:shutup:}

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

nhztb 发表于 2013-5-18 09:45:25

可以了,没问题

richu 发表于 2013-5-20 09:51:45

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

hk-avr 发表于 2013-6-24 15:13:43

有没有并口8位数据总线的驱动啊?

ANHOME 发表于 2013-6-24 17:00:42

一般2种接口都支持的!SPI ,RGB 接口都可以。
可以参考一下这里: http://item.taobao.com/item.htm?spm=a1z10.1.w4-18012095181.3.e4jYvr&id=22600824968

richu 发表于 2013-6-26 14:16:49

ANHOME 发表于 2013-6-24 17:00 static/image/common/back.gif
一般2种接口都支持的!SPI ,RGB 接口都可以。
可以参考一下这里: http://item.taobao.com/item.htm?spm=a1 ...

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

win100 发表于 2013-7-8 21:53:16

richu 发表于 2013-6-26 14:16 static/image/common/back.gif
谢谢,最后确定是自己程序的问题,用SPI初始化的时候设置错了。用SPI、RGB、MCU接口都是可以的。 ...

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

richu 发表于 2013-7-9 10:11:10

win100 发表于 2013-7-8 21:53 static/image/common/back.gif
最近用到这个接口驱动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);
}

huang_4115 发表于 2013-8-12 20:39:00

感谢分享!

keinYe 发表于 2013-8-24 11:45:34

LZ请问你还用的控制器的SPI还是模拟的SPI,怎么去区分命令和数据的,我弄了好久,现在也没弄好!

richu 发表于 2013-8-26 16:37:20

keinYe 发表于 2013-8-24 11:45 static/image/common/back.gif
LZ请问你还用的控制器的SPI还是模拟的SPI,怎么去区分命令和数据的,我弄了好久,现在也没弄好! ...

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

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

jesen_2010 发表于 2013-10-15 11:50:59

richu 发表于 2013-8-26 16:37 static/image/common/back.gif
可以参考ili9341的Datasheet,在控制器与ili9341进行SPI通讯时,首先通过ili9341的硬件引脚配置IM ...

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

wsgj0 发表于 2013-10-15 12:15:07

用smt32模拟spi,怎么模拟??

richu 发表于 2013-10-16 09:03:56

jesen_2010 发表于 2013-10-15 11:50 static/image/common/back.gif
LZ你好,现在我也碰到这个问题,写命令,数据都没有问题,能显示,但是读老是读不对,比如读驱动ID,老是 ...

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

richu 发表于 2013-10-16 09:05:41

wsgj0 发表于 2013-10-15 12:15 static/image/common/back.gif
用smt32模拟spi,怎么模拟??

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

lpdpzc 发表于 2013-10-16 09:44:41

但个人感觉,用SPI接口在速度上肯定是没有IORGB快的

jesen_2010 发表于 2013-10-16 17:06:45

richu 发表于 2013-10-16 09:03 static/image/common/back.gif
写操作能完成, 说明没有大问题。还有,在读操作时,发送完读命令字后,将SDA配置为输入。 ...

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

richu 发表于 2013-10-17 10:18:26

jesen_2010 发表于 2013-10-16 17:06 static/image/common/back.gif
我的屏是4线SPI,没有SDA,有SDI和SDO,SDO mcu配置成复用推挽输出

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

humancn 发表于 2015-5-14 23:01:52

可以分享一下SPI读取的程序吗,现在卡到这一块了,不知道该怎么弄,先谢谢了
页: [1]
查看完整版本: 能否用SPI接口而不用RGB接口驱动ILI9341实现显示功能?